new upstream release (3.3.0); modify package compatibility for Stretch
[ossec-hids.git] / src / external / pcre2-10.32 / testdata / testoutput24
1 # This file tests the auxiliary pattern conversion features of the PCRE2
2 # library, in non-UTF mode.
3
4 #forbid_utf
5 #newline_default lf any anycrlf
6
7 # -------- Tests of glob conversion --------
8
9 # Set the glob separator explicitly so that different OS defaults are not a
10 # problem. Then test various errors.
11
12 #pattern convert=glob,convert_glob_escape=\,convert_glob_separator=/
13
14 /abc/posix
15 ** The convert and posix modifiers are mutually exclusive
16
17 # Separator must be / \ or .
18
19 /a*b/convert_glob_separator=%
20 ** Invalid glob separator '%'
21
22 # Can't have separator in a class
23
24 "[ab/cd]"
25 (?s)\A[ab/cd](?<!/)\z
26
27 "[,-/]"
28 (?s)\A[,-/](?<!/)\z
29
30 /[ab/
31 ** Pattern conversion error at offset 3: missing terminating ] for character class
32
33 # Length check
34
35 /abc/convert_length=11
36 ** Pattern conversion error at offset 3: no more memory
37
38 /abc/convert_length=12
39 (?s)\Aabc\z
40
41 # Now some actual tests
42
43 /a?b[]xy]*c/
44 (?s)\Aa[^/]b[\]xy](*COMMIT)[^/]*?c\z
45     azb]1234c
46  0: azb]1234c
47
48 # Tests from the gitwildmatch list, with some additions
49
50 /foo/
51 (?s)\Afoo\z
52     foo
53  0: foo
54 /= Expect no match
55 No match
56     bar
57 No match
58
59 //
60 (?s)\A\z
61     \
62  0: 
63
64 /???/
65 (?s)\A[^/][^/][^/]\z
66     foo
67  0: foo
68 \= Expect no match
69     foobar
70 No match
71
72 /*/
73 (?s)\A[^/]*+\z
74     foo
75  0: foo
76     \
77  0: 
78
79 /f*/
80 (?s)\Af(*COMMIT)[^/]*+\z
81     foo
82  0: foo
83     f
84  0: f
85
86 /*f/
87 (?s)\A[^/]*?f\z
88     oof
89  0: oof
90 \= Expect no match
91     foo
92 No match
93
94 /*foo*/
95 (?s)\A[^/]*?foo(*COMMIT)[^/]*+\z
96     foo
97  0: foo
98     food
99  0: food
100     aprilfool
101  0: aprilfool
102
103 /*ob*a*r*/
104 (?s)\A[^/]*?ob(*COMMIT)[^/]*?a(*COMMIT)[^/]*?r(*COMMIT)[^/]*+\z
105     foobar
106  0: foobar
107
108 /*ab/
109 (?s)\A[^/]*?ab\z
110     aaaaaaabababab
111  0: aaaaaaabababab
112
113 /foo\*/
114 (?s)\Afoo\*\z
115     foo*
116  0: foo*
117
118 /foo\*bar/
119 (?s)\Afoo\*bar\z
120 \= Expect no match
121     foobar
122 No match
123
124 /f\\oo/
125 (?s)\Af\\oo\z
126     f\\oo
127  0: f\oo
128
129 /*[al]?/
130 (?s)\A[^/]*?[al][^/]\z
131     ball
132  0: ball
133
134 /[ten]/
135 (?s)\A[ten]\z
136 \= Expect no match
137     ten
138 No match
139
140 /t[a-g]n/
141 (?s)\At[a-g]n\z
142     ten
143  0: ten
144
145 /a[]]b/
146 (?s)\Aa[\]]b\z
147     a]b
148  0: a]b
149
150 /a[]a-]b/
151 (?s)\Aa[\]a\-]b\z
152
153 /a[]-]b/
154 (?s)\Aa[\]\-]b\z
155     a-b
156  0: a-b
157     a]b
158  0: a]b
159 \= Expect no match
160     aab
161 No match
162
163 /a[]a-z]b/
164 (?s)\Aa[\]a-z]b\z
165     aab
166  0: aab
167
168 /]/
169 (?s)\A\]\z
170     ]
171  0: ]
172
173 /t[!a-g]n/
174 (?s)\At[^/a-g]n\z
175     ton
176  0: ton
177 \= Expect no match
178     ten
179 No match
180
181 '[[:alpha:]][[:digit:]][[:upper:]]'
182 (?s)\A[[:alpha:]][[:digit:]][[:upper:]]\z
183     a1B
184  0: a1B
185
186 '[[:digit:][:upper:][:space:]]'
187 (?s)\A[[:digit:][:upper:][:space:]]\z
188     A
189  0: A
190     1
191  0: 1
192     \ \=
193  0:  
194 \= Expect no match
195     a
196 No match
197     .
198 No match
199
200 '[a-c[:digit:]x-z]'
201 (?s)\A[a-c[:digit:]x-z]\z
202     5
203  0: 5
204     b
205  0: b
206     y
207  0: y
208 \= Expect no match
209     q
210 No match
211
212 # End of gitwildmatch tests
213
214 /*.j?g/
215 (?s)\A[^/]*?\.j[^/]g\z
216     pic01.jpg
217  0: pic01.jpg
218     .jpg
219  0: .jpg
220     pic02.jxg
221  0: pic02.jxg
222 \= Expect no match
223     pic03.j/g
224 No match
225
226 /A[+-0]B/
227 (?s)\AA[+-0](?<!/)B\z
228     A+B
229  0: A+B
230     A.B
231  0: A.B
232     A0B
233  0: A0B
234 \= Expect no match
235     A/B
236 No match
237
238 /*x?z/
239 (?s)\A[^/]*?x[^/]z\z
240     abc.xyz
241  0: abc.xyz
242 \= Expect no match
243     .xyz
244  0: .xyz
245
246 /?x?z/
247 (?s)\A[^/]x[^/]z\z
248     axyz
249  0: axyz
250 \= Expect no match
251     .xyz
252  0: .xyz
253
254 "[,-0]x?z"
255 (?s)\A[,-0](?<!/)x[^/]z\z
256     ,xyz
257  0: ,xyz
258 \= Expect no match
259     /xyz
260 No match
261     .xyz
262  0: .xyz
263
264 ".x*"
265 (?s)\A\.x(*COMMIT)[^/]*+\z
266     .xabc
267  0: .xabc
268
269 /a[--0]z/
270 (?s)\Aa[\--0](?<!/)z\z
271     a-z
272  0: a-z
273     a.z
274  0: a.z
275     a0z
276  0: a0z
277 \= Expect no match
278     a/z
279 No match
280     a1z
281 No match
282
283 /<[a-c-d]>/
284 (?s)\A<[a-c\-d]>\z
285     <a>
286  0: <a>
287     <b>
288  0: <b>
289     <c>
290  0: <c>
291     <d>
292  0: <d>
293     <->
294  0: <->
295
296 /a[[:digit:].]z/
297 (?s)\Aa[[:digit:].]z\z
298     a1z
299  0: a1z
300     a.z
301  0: a.z
302 \= Expect no match
303     a:z
304 No match
305
306 /a[[:digit].]z/
307 (?s)\Aa[\[:digit]\.\]z\z
308     a[.]z
309  0: a[.]z
310     a:.]z
311  0: a:.]z
312     ad.]z
313  0: ad.]z
314
315 /<[[:a[:digit:]b]>/
316 (?s)\A<[\[:a[:digit:]b]>\z
317     <[>
318  0: <[>
319     <:>
320  0: <:>
321     <a>
322  0: <a>
323     <9>
324  0: <9>
325     <b>
326  0: <b>
327 \= Expect no match
328     <d>
329 No match
330
331 /a*b/convert_glob_separator=\
332 (?s)\Aa(*COMMIT)[^\\]*?b\z
333
334 /a*b/convert_glob_separator=.
335 (?s)\Aa(*COMMIT)[^\.]*?b\z
336
337 /a*b/convert_glob_separator=/
338 (?s)\Aa(*COMMIT)[^/]*?b\z
339
340 # Non control character checking
341
342 /A\B\\C\D/
343 (?s)\AAB\\CD\z
344
345 /\\{}\?\*+\[\]()|.^$/
346 (?s)\A\\\{\}\?\*\+\[\]\(\)\|\.\^\$\z
347
348 /*a*\/*b*/
349 (?s)\A[^/]*?a(*COMMIT)[^/]*?/(*COMMIT)[^/]*?b(*COMMIT)[^/]*+\z
350
351 /?a?\/?b?/
352 (?s)\A[^/]a[^/]/[^/]b[^/]\z
353
354 /[a\\b\c][]][-][\]\-]/
355 (?s)\A[a\\bc][\]][\-][\]\-]\z
356
357 /[^a\\b\c][!]][!-][^\]\-]/
358 (?s)\A[^/a\\bc][^/\]][^/\-][^/\]\-]\z
359
360 /[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:word:][:xdigit:]]/
361 (?s)\A[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:word:][:xdigit:]](?<!/)\z
362
363 "[/-/]"
364 (?s)\A[/-/](?<!/)\z
365
366 /[-----]/
367 (?s)\A[\--\-\-\-]\z
368
369 /[------]/
370 (?s)\A[\--\-\--\-]\z
371
372 /[!------]/
373 (?s)\A[^/\--\-\--\-]\z
374
375 /[[:alpha:]-a]/
376 (?s)\A[[:alpha:]\-a]\z
377
378 /[[:alpha:]][[:punct:]][[:ascii:]]/
379 (?s)\A[[:alpha:]][[:punct:]](?<!/)[[:ascii:]](?<!/)\z
380
381 /[a-[:alpha:]]/
382 ** Pattern conversion error at offset 4: invalid syntax
383
384 /[[:alpha:/
385 ** Pattern conversion error at offset 9: missing terminating ] for character class
386
387 /[[:alpha:]/
388 ** Pattern conversion error at offset 10: missing terminating ] for character class
389
390 /[[:alphaa:]]/
391 (?s)\A[\[:alphaa:]\]\z
392
393 /[[:xdigi:]]/
394 (?s)\A[\[:xdigi:]\]\z
395
396 /[[:xdigit::]]/
397 (?s)\A[\[:xdigit::]\]\z
398
399 /****/
400 (?s)
401
402 /**\/abc/
403 (?s)(?:\A|/)abc\z
404   abc
405  0: abc
406   x/abc
407  0: /abc
408   xabc
409 No match
410
411 /abc\/**/
412 (?s)\Aabc/
413
414 /abc\/**\/abc/
415 (?s)\Aabc/(*COMMIT)(?:.*?/)??abc\z
416
417 /**\/*a*b*g*n*t/
418 (?s)(?:\A|/)(?>[^/]*?a)(?>[^/]*?b)(?>[^/]*?g)(?>[^/]*?n)(?>[^/]*?t\z)
419   abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt
420  0: /abcdefghijklmnop.txt
421
422 /**\/*a*\/**/
423 (?s)(?:\A|/)(?>[^/]*?a)(?>[^/]*?/)
424   xx/xx/xx/xax/xx/xb
425  0: /xax/
426
427 /**\/*a*/
428 (?s)(?:\A|/)(?>[^/]*?a)(?>[^/]*+\z)
429   xx/xx/xx/xax
430  0: /xax
431   xx/xx/xx/xax/xx
432 No match
433
434 /**\/*a*\/**\/*b*/
435 (?s)(?:\A|/)(?>[^/]*?a)(?>[^/]*?/)(*COMMIT)(?:.*?/)??(?>[^/]*?b)(?>[^/]*+\z)
436   xx/xx/xx/xax/xx/xb
437  0: /xax/xx/xb
438   xx/xx/xx/xax/xx/x
439 No match
440
441 "**a"convert=glob
442 (?s)a\z
443   a
444  0: a
445   c/b/a
446  0: a
447   c/b/aaa
448  0: a
449
450 "a**/b"convert=glob
451 (?s)\Aa(*COMMIT).*?/b\z
452   a/b
453  0: a/b
454   ab
455 No match
456
457 "a/**b"convert=glob
458 (?s)\Aa/(*COMMIT).*?b\z
459   a/b
460  0: a/b
461   ab
462 No match
463
464 #pattern convert=glob:glob_no_starstar
465
466 /***/
467 (?s)\A[^/]*+\z
468
469 /**a**/
470 (?s)\A[^/]*?a(*COMMIT)[^/]*+\z
471
472 #pattern convert=unset
473 #pattern convert=glob:glob_no_wild_separator
474
475 /*/
476 (?s)
477
478 /*a*/
479 (?s)a
480
481 /**a**/
482 (?s)a
483
484 /a*b/
485 (?s)\Aa(*COMMIT).*?b\z
486
487 /*a*b*/
488 (?s)a(*COMMIT).*?b
489
490 /??a??/
491 (?s)\A..a..\z
492
493 #pattern convert=unset
494 #pattern convert=glob,convert_glob_escape=0
495
496 /a\b\cd/
497 (?s)\Aa\\b\\cd\z
498
499 /**\/a/
500 (?s)\\/a\z
501
502 /a`*b/convert_glob_escape=`
503 (?s)\Aa\*b\z
504
505 /a`*b/convert_glob_escape=0
506 (?s)\Aa`(*COMMIT)[^/]*?b\z
507
508 /a`*b/convert_glob_escape=x
509 ** Invalid glob escape 'x'
510
511 # -------- Tests of extended POSIX conversion --------
512
513 #pattern convert=unset:posix_extended
514
515 /<[[:a[:digit:]b]>/
516 (*NUL)<[[:a[:digit:]b]>
517     <[>
518  0: <[>
519     <:>
520  0: <:>
521     <a>
522  0: <a>
523     <9>
524  0: <9>
525     <b>
526  0: <b>
527 \= Expect no match
528     <d>
529 No match
530
531 /a+\1b\\c|d[ab\c]/
532 (*NUL)a+1b\\c|d[ab\\c]
533
534 /<[]bc]>/
535 (*NUL)<[]bc]>
536     <]>
537  0: <]>
538     <b>
539  0: <b>
540     <c>
541  0: <c>
542
543 /<[^]bc]>/
544 (*NUL)<[^]bc]>
545     <.>
546  0: <.>
547 \= Expect no match
548     <]>
549 No match
550     <b>
551 No match
552
553 /(a)\1b/
554 (*NUL)(a)1b
555     a1b
556  0: a1b
557  1: a
558 \= Expect no match
559     aab
560 No match
561
562 /(ab)c)d]/
563 (*NUL)(ab)c\)d\]
564     Xabc)d]Y
565  0: abc)d]
566  1: ab
567
568 /a***b/
569 (*NUL)a*b
570
571 # -------- Tests of basic POSIX conversion --------
572
573 #pattern convert=unset:posix_basic
574
575 /a*b+c\+[def](ab)\(cd\)/
576 (*NUL)a*b\+c\+[def]\(ab\)(cd)
577
578 /\(a\)\1b/
579 (*NUL)(a)\1b
580     aab
581  0: aab
582  1: a
583 \= Expect no match
584     a1b
585 No match
586
587 /how.to how\.to/
588 (*NUL)how.to how\.to
589     how\nto how.to
590  0: how\x0ato how.to
591 \= Expect no match     
592     how\x{0}to how.to
593 No match
594
595 /^how to \^how to/
596 (*NUL)^how to \^how to
597
598 /^*abc/
599 (*NUL)^\*abc
600
601 /*abc/
602 (*NUL)\*abc
603     X*abcY
604  0: *abc
605
606 /**abc/
607 (*NUL)\**abc
608     XabcY
609  0: abc
610     X*abcY
611  0: *abc
612     X**abcY
613  0: **abc
614     
615 /*ab\(*cd\)/ 
616 (*NUL)\*ab(\*cd)
617
618 /^b\(c^d\)\(^e^f\)/
619 (*NUL)^b(c\^d)(^e\^f)
620
621 /a***b/
622 (*NUL)a*b
623
624 # End of testinput24