chiark / gitweb /
Apply upstream revision 1631 (Closes: #815921)
[pcre3.git] / testdata / testinput14
1 /-- This set of tests is run only with the 8-bit library. They do not require 
2     UTF-8 or Unicode property support. The file starts with all the tests of
3     the POSIX interface, because that is supported only with the 8-bit library.
4     --/
5     
6 < forbid 8W 
7
8 /abc/P
9     abc
10     *** Failers
11
12 /^abc|def/P
13     abcdef
14     abcdef\B
15
16 /.*((abc)$|(def))/P
17     defabc
18     \Zdefabc
19
20 /the quick brown fox/P
21     the quick brown fox
22     *** Failers
23     The Quick Brown Fox
24
25 /the quick brown fox/Pi
26     the quick brown fox
27     The Quick Brown Fox
28
29 /abc.def/P
30     *** Failers
31     abc\ndef
32
33 /abc$/P
34     abc
35     abc\n
36
37 /(abc)\2/P
38
39 /(abc\1)/P
40     abc
41
42 /a*(b+)(z)(z)/P
43     aaaabbbbzzzz
44     aaaabbbbzzzz\O0
45     aaaabbbbzzzz\O1
46     aaaabbbbzzzz\O2
47     aaaabbbbzzzz\O3
48     aaaabbbbzzzz\O4
49     aaaabbbbzzzz\O5
50
51 /ab.cd/P
52     ab-cd
53     ab=cd
54     ** Failers
55     ab\ncd
56
57 /ab.cd/Ps
58     ab-cd
59     ab=cd
60     ab\ncd
61
62 /a(b)c/PN
63     abc
64
65 /a(?P<name>b)c/PN
66     abc
67
68 /a?|b?/P
69     abc
70     ** Failers
71     ddd\N   
72
73 /\w+A/P
74    CDAAAAB 
75
76 /\w+A/PU
77    CDAAAAB 
78    
79 /\Biss\B/I+P
80     Mississippi
81
82 /abc/\P
83
84 /-- End of POSIX tests --/ 
85
86 /a\Cb/
87     aXb
88     a\nb
89     ** Failers (too big char) 
90     A\x{123}B 
91     A\o{443}B 
92   
93 /\x{100}/I
94
95 /\o{400}/I
96
97 /  (?: [\040\t] |  \(
98 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
99 \)  )*                          # optional leading comment
100 (?:    (?:
101 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
102 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
103 |
104 " (?:                      # opening quote...
105 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
106 |                     #    or
107 \\ [^\x80-\xff]           #   Escaped something (something != CR)
108 )* "  # closing quote
109 )                    # initial word
110 (?:  (?: [\040\t] |  \(
111 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
112 \)  )*  \.  (?: [\040\t] |  \(
113 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
114 \)  )*   (?:
115 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
116 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
117 |
118 " (?:                      # opening quote...
119 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
120 |                     #    or
121 \\ [^\x80-\xff]           #   Escaped something (something != CR)
122 )* "  # closing quote
123 )  )* # further okay, if led by a period
124 (?: [\040\t] |  \(
125 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
126 \)  )*  @  (?: [\040\t] |  \(
127 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
128 \)  )*    (?:
129 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
130 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
131 |   \[                         # [
132 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
133 \]                        #           ]
134 )                           # initial subdomain
135 (?:                                  #
136 (?: [\040\t] |  \(
137 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
138 \)  )*  \.                        # if led by a period...
139 (?: [\040\t] |  \(
140 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
141 \)  )*   (?:
142 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
143 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
144 |   \[                         # [
145 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
146 \]                        #           ]
147 )                     #   ...further okay
148 )*
149 # address
150 |                     #  or
151 (?:
152 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
153 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
154 |
155 " (?:                      # opening quote...
156 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
157 |                     #    or
158 \\ [^\x80-\xff]           #   Escaped something (something != CR)
159 )* "  # closing quote
160 )             # one word, optionally followed by....
161 (?:
162 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
163 \(
164 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
165 \)       |  # comments, or...
166
167 " (?:                      # opening quote...
168 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
169 |                     #    or
170 \\ [^\x80-\xff]           #   Escaped something (something != CR)
171 )* "  # closing quote
172 # quoted strings
173 )*
174 <  (?: [\040\t] |  \(
175 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
176 \)  )*                     # leading <
177 (?:  @  (?: [\040\t] |  \(
178 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
179 \)  )*    (?:
180 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
181 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
182 |   \[                         # [
183 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
184 \]                        #           ]
185 )                           # initial subdomain
186 (?:                                  #
187 (?: [\040\t] |  \(
188 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
189 \)  )*  \.                        # if led by a period...
190 (?: [\040\t] |  \(
191 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
192 \)  )*   (?:
193 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
194 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
195 |   \[                         # [
196 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
197 \]                        #           ]
198 )                     #   ...further okay
199 )*
200
201 (?:  (?: [\040\t] |  \(
202 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
203 \)  )*  ,  (?: [\040\t] |  \(
204 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
205 \)  )*  @  (?: [\040\t] |  \(
206 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
207 \)  )*    (?:
208 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
209 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
210 |   \[                         # [
211 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
212 \]                        #           ]
213 )                           # initial subdomain
214 (?:                                  #
215 (?: [\040\t] |  \(
216 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
217 \)  )*  \.                        # if led by a period...
218 (?: [\040\t] |  \(
219 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
220 \)  )*   (?:
221 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
222 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
223 |   \[                         # [
224 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
225 \]                        #           ]
226 )                     #   ...further okay
227 )*
228 )* # further okay, if led by comma
229 :                                # closing colon
230 (?: [\040\t] |  \(
231 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
232 \)  )*  )? #       optional route
233 (?:
234 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
235 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
236 |
237 " (?:                      # opening quote...
238 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
239 |                     #    or
240 \\ [^\x80-\xff]           #   Escaped something (something != CR)
241 )* "  # closing quote
242 )                    # initial word
243 (?:  (?: [\040\t] |  \(
244 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
245 \)  )*  \.  (?: [\040\t] |  \(
246 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
247 \)  )*   (?:
248 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
249 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
250 |
251 " (?:                      # opening quote...
252 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
253 |                     #    or
254 \\ [^\x80-\xff]           #   Escaped something (something != CR)
255 )* "  # closing quote
256 )  )* # further okay, if led by a period
257 (?: [\040\t] |  \(
258 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
259 \)  )*  @  (?: [\040\t] |  \(
260 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
261 \)  )*    (?:
262 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
263 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
264 |   \[                         # [
265 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
266 \]                        #           ]
267 )                           # initial subdomain
268 (?:                                  #
269 (?: [\040\t] |  \(
270 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
271 \)  )*  \.                        # if led by a period...
272 (?: [\040\t] |  \(
273 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
274 \)  )*   (?:
275 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
276 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
277 |   \[                         # [
278 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
279 \]                        #           ]
280 )                     #   ...further okay
281 )*
282 #       address spec
283 (?: [\040\t] |  \(
284 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
285 \)  )*  > #                  trailing >
286 # name and address
287 )  (?: [\040\t] |  \(
288 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
289 \)  )*                       # optional trailing comment
290 /xSI
291
292 /-- Although this saved pattern was compiled with link-size=2, it does no harm
293 to run this test with other link sizes because it is going to generated a
294 "compiled in wrong mode" error as soon as it is loaded, so the link size does 
295 not matter. --/
296
297 <!testsaved16
298
299 <!testsaved32
300
301 /\h/SI
302
303 /\H/SI
304
305 /\v/SI
306
307 /\V/SI
308
309 /\R/SI
310
311 /[\h]/BZ
312     >\x09<
313
314 /[\h]+/BZ
315     >\x09\x20\xa0<
316
317 /[\v]/BZ
318
319 /[\H]/BZ
320
321 /[^\h]/BZ
322
323 /[\V]/BZ
324
325 /[\x0a\V]/BZ
326
327 /\777/I
328
329 /(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF)XX/K
330     XX
331      
332 /(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE)XX/K
333     XX
334
335 /\u0100/<JS>
336
337 /[\u0100-\u0200]/<JS>
338
339 /[^\x00-a]{12,}[^b-\xff]*/BZ
340
341 /[^\s]*\s* [^\W]+\W+ [^\d]*?\d0 [^\d\w]{4,6}?\w*A/BZ
342
343 /(?'ABC'[bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar](*THEN:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/
344
345 /-- End of testinput14 --/