• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1PCRE2 version 10.32-RC1 2018-02-19
2# This is a specialized test for checking, when PCRE2 is compiled with the
3# EBCDIC option but in an ASCII environment, that newline, white space, and \c
4# functionality is working. It catches cases where explicit values such as 0x0a
5# have been used instead of names like CHAR_LF. Needless to say, it is not a
6# genuine EBCDIC test! In patterns, alphabetic characters that follow a
7# backslash must be in EBCDIC code. In data, NL, NEL, LF, ESC, and DEL must be
8# in EBCDIC, but can of course be specified as escapes.
9
10# Test default newline and variations
11
12/^A/m
13    ABC
14 0: A
15    12\x15ABC
16 0: A
17
18/^A/m,newline=any
19    12\x15ABC
20 0: A
21    12\x0dABC
22 0: A
23    12\x0d\x15ABC
24 0: A
25    12\x25ABC
26 0: A
27
28/^A/m,newline=anycrlf
29    12\x15ABC
30 0: A
31    12\x0dABC
32 0: A
33    12\x0d\x15ABC
34 0: A
35    ** Fail
36No match
37    12\x25ABC
38No match
39
40# Test \h
41
42/^A\�/
43    A B
44 0: A\x20
45    A\x41B
46 0: AA
47
48# Test \H
49
50/^A\�/
51    AB
52 0: AB
53    A\x42B
54 0: AB
55    ** Fail
56No match
57    A B
58No match
59    A\x41B
60No match
61
62# Test \R
63
64/^A\�/
65    A\x15B
66 0: A\x15
67    A\x0dB
68 0: A\x0d
69    A\x25B
70 0: A\x25
71    A\x0bB
72 0: A\x0b
73    A\x0cB
74 0: A\x0c
75    ** Fail
76No match
77    A B
78No match
79
80# Test \v
81
82/^A\�/
83    A\x15B
84 0: A\x15
85    A\x0dB
86 0: A\x0d
87    A\x25B
88 0: A\x25
89    A\x0bB
90 0: A\x0b
91    A\x0cB
92 0: A\x0c
93    ** Fail
94No match
95    A B
96No match
97
98# Test \V
99
100/^A\�/
101    A B
102 0: A\x20
103    ** Fail
104No match
105    A\x15B
106No match
107    A\x0dB
108No match
109    A\x25B
110No match
111    A\x0bB
112No match
113    A\x0cB
114No match
115
116# For repeated items, use an atomic group so that the output is the same
117# for DFA matching (otherwise it may show multiple matches).
118
119# Test \h+
120
121/^A(?>\�+)/
122    A B
123 0: A\x20
124
125# Test \H+
126
127/^A(?>\�+)/
128    AB
129 0: AB
130    ** Fail
131No match
132    A B
133No match
134
135# Test \R+
136
137/^A(?>\�+)/
138    A\x15B
139 0: A\x15
140    A\x0dB
141 0: A\x0d
142    A\x25B
143 0: A\x25
144    A\x0bB
145 0: A\x0b
146    A\x0cB
147 0: A\x0c
148    ** Fail
149No match
150    A B
151No match
152
153# Test \v+
154
155/^A(?>\�+)/
156    A\x15B
157 0: A\x15
158    A\x0dB
159 0: A\x0d
160    A\x25B
161 0: A\x25
162    A\x0bB
163 0: A\x0b
164    A\x0cB
165 0: A\x0c
166    ** Fail
167No match
168    A B
169No match
170
171# Test \V+
172
173/^A(?>\�+)/
174    A B
175 0: A\x20B
176    ** Fail
177No match
178    A\x15B
179No match
180    A\x0dB
181No match
182    A\x25B
183No match
184    A\x0bB
185No match
186    A\x0cB
187No match
188
189# Test \c functionality
190
191/\�@\�A\�b\�C\�d\�E\�f\�G\�h\�I\�J\�K\�l\�m\�N\�O\�p\�q\�r\�S\�T\�u\�V\�W\�X\�y\�Z/
192    \x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f
193 0: \x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a
194
195/\�[\�\\�]\�^\�_/
196    \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f
197 0: \x1b\x1c\x1d\x1e\x1f
198
199/\�?/
200    A\xffB
201 0: \xff
202
203/\�&/
204Failed: error 168 at offset 3: \c\x20must\x20be\x20followed\x20by\x20a\x20letter\x20or\x20one\x20of\x20[\]^_\x3f
205
206# End
207