1/-- This set of tests is not Perl-compatible. It checks on special features
2    of PCRE's API, error diagnostics, and the compiled code of some patterns.
3    It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4    Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5    either because PCRE can't be compatible, or there is a possible Perl
6    bug.
7
8    NOTE: This is a non-UTF set of tests. When UTF support is needed, use
9    test 5, and if Unicode Property Support is needed, use test 7. --/
10
11< forbid 8W
12
13/(a)b|/I
14
15/abc/I
16    abc
17    defabc
18    \Aabc
19    *** Failers
20    \Adefabc
21    ABC
22
23/^abc/I
24    abc
25    \Aabc
26    *** Failers
27    defabc
28    \Adefabc
29
30/a+bc/I
31
32/a*bc/I
33
34/a{3}bc/I
35
36/(abc|a+z)/I
37
38/^abc$/I
39    abc
40    *** Failers
41    def\nabc
42
43/ab\idef/X
44
45/(?X)ab\idef/X
46
47/x{5,4}/
48
49/z{65536}/
50
51/[abcd/
52
53/(?X)[\B]/
54
55/(?X)[\R]/
56
57/(?X)[\X]/
58
59/[\B]/BZ
60
61/[\R]/BZ
62
63/[\X]/BZ
64
65/[z-a]/
66
67/^*/
68
69/(abc/
70
71/(?# abc/
72
73/(?z)abc/
74
75/.*b/I
76
77/.*?b/I
78
79/cat|dog|elephant/I
80    this sentence eventually mentions a cat
81    this sentences rambles on and on for a while and then reaches elephant
82
83/cat|dog|elephant/IS
84    this sentence eventually mentions a cat
85    this sentences rambles on and on for a while and then reaches elephant
86
87/cat|dog|elephant/IiS
88    this sentence eventually mentions a CAT cat
89    this sentences rambles on and on for a while to elephant ElePhant
90
91/a|[bcd]/IS
92
93/(a|[^\dZ])/IS
94
95/(a|b)*[\s]/IS
96
97/(ab\2)/
98
99/{4,5}abc/
100
101/(a)(b)(c)\2/I
102    abcb
103    \O0abcb
104    \O3abcb
105    \O6abcb
106    \O9abcb
107    \O12abcb
108
109/(a)bc|(a)(b)\2/I
110    abc
111    \O0abc
112    \O3abc
113    \O6abc
114    aba
115    \O0aba
116    \O3aba
117    \O6aba
118    \O9aba
119    \O12aba
120
121/abc$/IE
122    abc
123    *** Failers
124    abc\n
125    abc\ndef
126
127/(a)(b)(c)(d)(e)\6/
128
129/the quick brown fox/I
130    the quick brown fox
131    this is a line with the quick brown fox
132
133/the quick brown fox/IA
134    the quick brown fox
135    *** Failers
136    this is a line with the quick brown fox
137
138/ab(?z)cd/
139
140/^abc|def/I
141    abcdef
142    abcdef\B
143
144/.*((abc)$|(def))/I
145    defabc
146    \Zdefabc
147
148/)/
149
150/a[]b/
151
152/[^aeiou ]{3,}/I
153    co-processors, and for
154
155/<.*>/I
156    abc<def>ghi<klm>nop
157
158/<.*?>/I
159    abc<def>ghi<klm>nop
160
161/<.*>/IU
162    abc<def>ghi<klm>nop
163
164/(?U)<.*>/I
165    abc<def>ghi<klm>nop
166
167/<.*?>/IU
168    abc<def>ghi<klm>nop
169
170/={3,}/IU
171    abc========def
172
173/(?U)={3,}?/I
174    abc========def
175
176/(?<!bar|cattle)foo/I
177    foo
178    catfoo
179    *** Failers
180    the barfoo
181    and cattlefoo
182
183/(?<=a+)b/
184
185/(?<=aaa|b{0,3})b/
186
187/(?<!(foo)a\1)bar/
188
189/(?i)abc/I
190
191/(a|(?m)a)/I
192
193/(?i)^1234/I
194
195/(^b|(?i)^d)/I
196
197/(?s).*/I
198
199/[abcd]/IS
200
201/(?i)[abcd]/IS
202
203/(?m)[xy]|(b|c)/IS
204
205/(^a|^b)/Im
206
207/(?i)(^a|^b)/Im
208
209/(a)(?(1)a|b|c)/
210
211/(?(?=a)a|b|c)/
212
213/(?(1a)/
214
215/(?(1a))/
216
217/(?(?i))/
218
219/(?(abc))/
220
221/(?(?<ab))/
222
223/((?s)blah)\s+\1/I
224
225/((?i)blah)\s+\1/I
226
227/((?i)b)/IDZS
228
229/(a*b|(?i:c*(?-i)d))/IS
230
231/a$/I
232    a
233    a\n
234    *** Failers
235    \Za
236    \Za\n
237
238/a$/Im
239    a
240    a\n
241    \Za\n
242    *** Failers
243    \Za
244
245/\Aabc/Im
246
247/^abc/Im
248
249/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
250  aaaaabbbbbcccccdef
251
252/(?<=foo)[ab]/IS
253
254/(?<!foo)(alpha|omega)/IS
255
256/(?!alphabet)[ab]/IS
257
258/(?<=foo\n)^bar/Im
259    foo\nbarbar
260    ***Failers
261    rhubarb
262    barbell
263    abc\nbarton
264
265/^(?<=foo\n)bar/Im
266    foo\nbarbar
267    ***Failers
268    rhubarb
269    barbell
270    abc\nbarton
271
272/(?>^abc)/Im
273    abc
274    def\nabc
275    *** Failers
276    defabc
277
278/(?<=ab(c+)d)ef/
279
280/(?<=ab(?<=c+)d)ef/
281
282/(?<=ab(c|de)f)g/
283
284/The next three are in testinput2 because they have variable length branches/
285
286/(?<=bullock|donkey)-cart/I
287    the bullock-cart
288    a donkey-cart race
289    *** Failers
290    cart
291    horse-and-cart
292
293/(?<=ab(?i)x|y|z)/I
294
295/(?>.*)(?<=(abcd)|(xyz))/I
296    alphabetabcd
297    endingxyz
298
299/(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
300    abxyZZ
301    abXyZZ
302    ZZZ
303    zZZ
304    bZZ
305    BZZ
306    *** Failers
307    ZZ
308    abXYZZ
309    zzz
310    bzz
311
312/(?<!(foo)a)bar/I
313    bar
314    foobbar
315    *** Failers
316    fooabar
317
318/This one is here because Perl behaves differently; see also the following/I
319
320/^(a\1?){4}$/I
321    aaaa
322    aaaaaa
323
324/Perl does not fail these two for the final subjects. Neither did PCRE until/
325/release 8.01. The problem is in backtracking into a subpattern that contains/
326/a recursive reference to itself. PCRE has now made these into atomic patterns./
327
328/^(xa|=?\1a){2}$/
329    xa=xaa
330    ** Failers
331    xa=xaaa
332
333/^(xa|=?\1a)+$/
334    xa=xaa
335    ** Failers
336    xa=xaaa
337
338/These are syntax tests from Perl 5.005/I
339
340/a[b-a]/
341
342/a[]b/
343
344/a[/
345
346/*a/
347
348/(*)b/
349
350/abc)/
351
352/(abc/
353
354/a**/
355
356/)(/
357
358/\1/
359
360/\2/
361
362/(a)|\2/
363
364/a[b-a]/Ii
365
366/a[]b/Ii
367
368/a[/Ii
369
370/*a/Ii
371
372/(*)b/Ii
373
374/abc)/Ii
375
376/(abc/Ii
377
378/a**/Ii
379
380/)(/Ii
381
382/:(?:/
383
384/(?<%)b/
385
386/a(?{)b/
387
388/a(?{{})b/
389
390/a(?{}})b/
391
392/a(?{"{"})b/
393
394/a(?{"{"}})b/
395
396/(?(1?)a|b)/
397
398/[a[:xyz:/
399
400/(?<=x+)y/
401
402/a{37,17}/
403
404/abc/\
405
406/abc/\i
407
408/(a)bc(d)/I
409    abcd
410    abcd\C2
411    abcd\C5
412
413/(.{20})/I
414    abcdefghijklmnopqrstuvwxyz
415    abcdefghijklmnopqrstuvwxyz\C1
416    abcdefghijklmnopqrstuvwxyz\G1
417
418/(.{15})/I
419    abcdefghijklmnopqrstuvwxyz
420    abcdefghijklmnopqrstuvwxyz\C1\G1
421
422/(.{16})/I
423    abcdefghijklmnopqrstuvwxyz
424    abcdefghijklmnopqrstuvwxyz\C1\G1\L
425
426/^(a|(bc))de(f)/I
427    adef\G1\G2\G3\G4\L
428    bcdef\G1\G2\G3\G4\L
429    adefghijk\C0
430
431/^abc\00def/I
432    abc\00def\L\C0
433
434/word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
435)((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
436)?)?)?)?)?)?)?)?)?otherword/I
437
438/.*X/IDZ
439
440/.*X/IDZs
441
442/(.*X|^B)/IDZ
443
444/(.*X|^B)/IDZs
445
446/(?s)(.*X|^B)/IDZ
447
448/(?s:.*X|^B)/IDZ
449
450/\Biss\B/I+
451    Mississippi
452
453/iss/IG+
454    Mississippi
455
456/\Biss\B/IG+
457    Mississippi
458
459/\Biss\B/Ig+
460    Mississippi
461    *** Failers
462    Mississippi\A
463
464/(?<=[Ms])iss/Ig+
465    Mississippi
466
467/(?<=[Ms])iss/IG+
468    Mississippi
469
470/^iss/Ig+
471    ississippi
472
473/.*iss/Ig+
474    abciss\nxyzisspqr
475
476/.i./I+g
477    Mississippi
478    Mississippi\A
479    Missouri river
480    Missouri river\A
481
482/^.is/I+g
483    Mississippi
484
485/^ab\n/Ig+
486    ab\nab\ncd
487
488/^ab\n/Img+
489    ab\nab\ncd
490
491/abc/I
492
493/abc|bac/I
494
495/(abc|bac)/I
496
497/(abc|(c|dc))/I
498
499/(abc|(d|de)c)/I
500
501/a*/I
502
503/a+/I
504
505/(baa|a+)/I
506
507/a{0,3}/I
508
509/baa{3,}/I
510
511/"([^\\"]+|\\.)*"/I
512
513/(abc|ab[cd])/I
514
515/(a|.)/I
516
517/a|ba|\w/I
518
519/abc(?=pqr)/I
520
521/...(?<=abc)/I
522
523/abc(?!pqr)/I
524
525/ab./I
526
527/ab[xyz]/I
528
529/abc*/I
530
531/ab.c*/I
532
533/a.c*/I
534
535/.c*/I
536
537/ac*/I
538
539/(a.c*|b.c*)/I
540
541/a.c*|aba/I
542
543/.+a/I
544
545/(?=abcda)a.*/I
546
547/(?=a)a.*/I
548
549/a(b)*/I
550
551/a\d*/I
552
553/ab\d*/I
554
555/a(\d)*/I
556
557/abcde{0,0}/I
558
559/ab\d+/I
560
561/a(?(1)b)(.)/I
562
563/a(?(1)bag|big)(.)/I
564
565/a(?(1)bag|big)*(.)/I
566
567/a(?(1)bag|big)+(.)/I
568
569/a(?(1)b..|b..)(.)/I
570
571/ab\d{0}e/I
572
573/a?b?/I
574    a
575    b
576    ab
577    \
578    *** Failers
579    \N
580
581/|-/I
582    abcd
583    -abc
584    \Nab-c
585    *** Failers
586    \Nabc
587
588/^.?abcd/IS
589
590/\(             # ( at start
591  (?:           # Non-capturing bracket
592  (?>[^()]+)    # Either a sequence of non-brackets (no backtracking)
593  |             # Or
594  (?R)          # Recurse - i.e. nested bracketed string
595  )*            # Zero or more contents
596  \)            # Closing )
597  /Ix
598    (abcd)
599    (abcd)xyz
600    xyz(abcd)
601    (ab(xy)cd)pqr
602    (ab(xycd)pqr
603    () abc ()
604    12(abcde(fsh)xyz(foo(bar))lmno)89
605    *** Failers
606    abcd
607    abcd)
608    (abcd
609
610/\(  ( (?>[^()]+) | (?R) )* \) /Ixg
611    (ab(xy)cd)pqr
612    1(abcd)(x(y)z)pqr
613
614/\(  (?: (?>[^()]+) | (?R) ) \) /Ix
615    (abcd)
616    (ab(xy)cd)
617    (a(b(c)d)e)
618    ((ab))
619    *** Failers
620    ()
621
622/\(  (?: (?>[^()]+) | (?R) )? \) /Ix
623    ()
624    12(abcde(fsh)xyz(foo(bar))lmno)89
625
626/\(  ( (?>[^()]+) | (?R) )* \) /Ix
627    (ab(xy)cd)
628
629/\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
630    (ab(xy)cd)
631
632/\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
633    (ab(xy)cd)
634    (123ab(xy)cd)
635
636/\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
637    (ab(xy)cd)
638    (123ab(xy)cd)
639
640/\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
641    (ab(xy)cd)
642
643/\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
644    (abcd(xyz<p>qrs)123)
645
646/\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
647    (ab(cd)ef)
648    (ab(cd(ef)gh)ij)
649
650/^[[:alnum:]]/DZ
651
652/^[[:^alnum:]]/DZ
653
654/^[[:alpha:]]/DZ
655
656/^[[:^alpha:]]/DZ
657
658/[_[:alpha:]]/IS
659
660/^[[:ascii:]]/DZ
661
662/^[[:^ascii:]]/DZ
663
664/^[[:blank:]]/DZ
665
666/^[[:^blank:]]/DZ
667
668/[\n\x0b\x0c\x0d[:blank:]]/IS
669
670/^[[:cntrl:]]/DZ
671
672/^[[:digit:]]/DZ
673
674/^[[:graph:]]/DZ
675
676/^[[:lower:]]/DZ
677
678/^[[:print:]]/DZ
679
680/^[[:punct:]]/DZ
681
682/^[[:space:]]/DZ
683
684/^[[:upper:]]/DZ
685
686/^[[:xdigit:]]/DZ
687
688/^[[:word:]]/DZ
689
690/^[[:^cntrl:]]/DZ
691
692/^[12[:^digit:]]/DZ
693
694/^[[:^blank:]]/DZ
695
696/[01[:alpha:]%]/DZ
697
698/[[.ch.]]/I
699
700/[[=ch=]]/I
701
702/[[:rhubarb:]]/I
703
704/[[:upper:]]/Ii
705    A
706    a
707
708/[[:lower:]]/Ii
709    A
710    a
711
712/((?-i)[[:lower:]])[[:lower:]]/Ii
713    ab
714    aB
715    *** Failers
716    Ab
717    AB
718
719/[\200-\110]/I
720
721/^(?(0)f|b)oo/I
722
723/This one's here because of the large output vector needed/I
724
725/(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I
726    \O900 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC
727
728/This one's here because Perl does this differently and PCRE can't at present/I
729
730/(main(O)?)+/I
731    mainmain
732    mainOmain
733
734/These are all cases where Perl does it differently (nested captures)/I
735
736/^(a(b)?)+$/I
737    aba
738
739/^(aa(bb)?)+$/I
740    aabbaa
741
742/^(aa|aa(bb))+$/I
743    aabbaa
744
745/^(aa(bb)??)+$/I
746    aabbaa
747
748/^(?:aa(bb)?)+$/I
749    aabbaa
750
751/^(aa(b(b))?)+$/I
752    aabbaa
753
754/^(?:aa(b(b))?)+$/I
755    aabbaa
756
757/^(?:aa(b(?:b))?)+$/I
758    aabbaa
759
760/^(?:aa(bb(?:b))?)+$/I
761    aabbbaa
762
763/^(?:aa(b(?:bb))?)+$/I
764    aabbbaa
765
766/^(?:aa(?:b(b))?)+$/I
767    aabbaa
768
769/^(?:aa(?:b(bb))?)+$/I
770    aabbbaa
771
772/^(aa(b(bb))?)+$/I
773    aabbbaa
774
775/^(aa(bb(bb))?)+$/I
776    aabbbbaa
777
778/--------------------------------------------------------------------/I
779
780/#/IxDZ
781
782/a#/IxDZ
783
784/[\s]/DZ
785
786/[\S]/DZ
787
788/a(?i)b/DZ
789    ab
790    aB
791    *** Failers
792    AB
793
794/(a(?i)b)/DZ
795    ab
796    aB
797    *** Failers
798    AB
799
800/   (?i)abc/IxDZ
801
802/#this is a comment
803  (?i)abc/IxDZ
804
805/123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
806
807/\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
808
809/\Q\E/DZ
810    \
811
812/\Q\Ex/DZ
813
814/ \Q\E/DZ
815
816/a\Q\E/DZ
817  abc
818  bca
819  bac
820
821/a\Q\Eb/DZ
822  abc
823
824/\Q\Eabc/DZ
825
826/x*+\w/DZ
827    *** Failers
828    xxxxx
829
830/x?+/DZ
831
832/x++/DZ
833
834/x{1,3}+/BZO
835
836/x{1,3}+/BZOi
837
838/[^x]{1,3}+/BZO
839
840/[^x]{1,3}+/BZOi
841
842/(x)*+/DZ
843
844/^(\w++|\s++)*$/I
845    now is the time for all good men to come to the aid of the party
846    *** Failers
847    this is not a line with only words and spaces!
848
849/(\d++)(\w)/I
850    12345a
851    *** Failers
852    12345+
853
854/a++b/I
855    aaab
856
857/(a++b)/I
858    aaab
859
860/(a++)b/I
861    aaab
862
863/([^()]++|\([^()]*\))+/I
864    ((abc(ade)ufh()()x
865
866/\(([^()]++|\([^()]+\))+\)/I
867    (abc)
868    (abc(def)xyz)
869    *** Failers
870    ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
871
872/(abc){1,3}+/DZ
873
874/a+?+/I
875
876/a{2,3}?+b/I
877
878/(?U)a+?+/I
879
880/a{2,3}?+b/IU
881
882/x(?U)a++b/DZ
883    xaaaab
884
885/(?U)xa++b/DZ
886    xaaaab
887
888/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
889
890/^x(?U)a+b/DZ
891
892/^x(?U)(a+)b/DZ
893
894/[.x.]/I
895
896/[=x=]/I
897
898/[:x:]/I
899
900/\l/I
901
902/\L/I
903
904/\N{name}/I
905
906/\u/I
907
908/\U/I
909
910/a{1,3}b/U
911    ab
912
913/[/I
914
915/[a-/I
916
917/[[:space:]/I
918
919/[\s]/IDZ
920
921/[[:space:]]/IDZ
922
923/[[:space:]abcde]/IDZ
924
925/< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
926    <>
927    <abcd>
928    <abc <123> hij>
929    <abc <def> hij>
930    <abc<>def>
931    <abc<>
932    *** Failers
933    <abc
934
935|8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
936
937|\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
938
939/(.*)\d+\1/I
940
941/(.*)\d+/I
942
943/(.*)\d+\1/Is
944
945/(.*)\d+/Is
946
947/(.*(xyz))\d+\2/I
948
949/((.*))\d+\1/I
950    abc123bc
951
952/a[b]/I
953
954/(?=a).*/I
955
956/(?=abc).xyz/IiI
957
958/(?=abc)(?i).xyz/I
959
960/(?=a)(?=b)/I
961
962/(?=.)a/I
963
964/((?=abcda)a)/I
965
966/((?=abcda)ab)/I
967
968/()a/I
969
970/(?(1)ab|ac)(.)/I
971
972/(?(1)abz|acz)(.)/I
973
974/(?(1)abz)(.)/I
975
976/(?(1)abz)(1)23/I
977
978/(a)+/I
979
980/(a){2,3}/I
981
982/(a)*/I
983
984/[a]/I
985
986/[ab]/I
987
988/[ab]/IS
989
990/[^a]/I
991
992/\d456/I
993
994/\d456/IS
995
996/a^b/I
997
998/^a/Im
999  abcde
1000  xy\nabc
1001  *** Failers
1002  xyabc
1003
1004/c|abc/I
1005
1006/(?i)[ab]/IS
1007
1008/[ab](?i)cd/IS
1009
1010/abc(?C)def/I
1011    abcdef
1012    1234abcdef
1013    *** Failers
1014    abcxyz
1015    abcxyzf
1016
1017/abc(?C)de(?C1)f/I
1018    123abcdef
1019
1020/(?C1)\dabc(?C2)def/IS
1021    1234abcdef
1022    *** Failers
1023    abcdef
1024
1025/(?C1)\dabc(?C2)def/ISS
1026    1234abcdef
1027    *** Failers
1028    abcdef
1029
1030/(?C255)ab/I
1031
1032/(?C256)ab/I
1033
1034/(?Cab)xx/I
1035
1036/(?C12vr)x/I
1037
1038/abc(?C)def/I
1039    *** Failers
1040    \x83\x0\x61bcdef
1041
1042/(abc)(?C)de(?C1)f/I
1043    123abcdef
1044    123abcdef\C+
1045    123abcdef\C-
1046    *** Failers
1047    123abcdef\C!1
1048
1049/(?C0)(abc(?C1))*/I
1050    abcabcabc
1051    abcabc\C!1!3
1052    *** Failers
1053    abcabcabc\C!1!3
1054
1055/(\d{3}(?C))*/I
1056    123\C+
1057    123456\C+
1058    123456789\C+
1059
1060/((xyz)(?C)p|(?C1)xyzabc)/I
1061    xyzabc\C+
1062
1063/(X)((xyz)(?C)p|(?C1)xyzabc)/I
1064    Xxyzabc\C+
1065
1066/(?=(abc))(?C)abcdef/I
1067    abcdef\C+
1068
1069/(?!(abc)(?C1)d)(?C2)abcxyz/I
1070    abcxyz\C+
1071
1072/(?<=(abc)(?C))xyz/I
1073   abcxyz\C+
1074
1075/a(b+)(c*)(?C1)/I
1076    abbbbbccc\C*1
1077
1078/a(b+?)(c*?)(?C1)/I
1079    abbbbbccc\C*1
1080
1081/(?C)abc/I
1082
1083/(?C)^abc/I
1084
1085/(?C)a|b/IS
1086
1087/(?R)/I
1088
1089/(a|(?R))/I
1090
1091/(ab|(bc|(de|(?R))))/I
1092
1093/x(ab|(bc|(de|(?R))))/I
1094    xab
1095    xbc
1096    xde
1097    xxab
1098    xxxab
1099    *** Failers
1100    xyab
1101
1102/(ab|(bc|(de|(?1))))/I
1103
1104/x(ab|(bc|(de|(?1)x)x)x)/I
1105
1106/^([^()]|\((?1)*\))*$/I
1107    abc
1108    a(b)c
1109    a(b(c))d
1110    *** Failers)
1111    a(b(c)d
1112
1113/^>abc>([^()]|\((?1)*\))*<xyz<$/I
1114   >abc>123<xyz<
1115   >abc>1(2)3<xyz<
1116   >abc>(1(2)3)<xyz<
1117
1118/(a(?1)b)/DZ
1119
1120/(a(?1)+b)/DZ
1121
1122/^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
1123    12
1124    (((2+2)*-3)-7)
1125    -12
1126    *** Failers
1127    ((2+2)*-3)-7)
1128
1129/^(x(y|(?1){2})z)/I
1130    xyz
1131    xxyzxyzz
1132    *** Failers
1133    xxyzz
1134    xxyzxyzxyzz
1135
1136/((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
1137    <>
1138    <abcd>
1139    <abc <123> hij>
1140    <abc <def> hij>
1141    <abc<>def>
1142    <abc<>
1143    *** Failers
1144    <abc
1145
1146/(?1)/I
1147
1148/((?2)(abc)/I
1149
1150/^(abc)def(?1)/I
1151    abcdefabc
1152
1153/^(a|b|c)=(?1)+/I
1154    a=a
1155    a=b
1156    a=bc
1157
1158/^(a|b|c)=((?1))+/I
1159    a=a
1160    a=b
1161    a=bc
1162
1163/a(?P<name1>b|c)d(?P<longername2>e)/DZ
1164    abde
1165    acde
1166
1167/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
1168
1169/(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
1170
1171/^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/Ii
1172    1221
1173    Satan, oscillate my metallic sonatas!
1174    A man, a plan, a canal: Panama!
1175    Able was I ere I saw Elba.
1176    *** Failers
1177    The quick brown fox
1178
1179/((?(R)a|b))\1(?1)?/I
1180  bb
1181  bbaa
1182
1183/(.*)a/Is
1184
1185/(.*)a\1/Is
1186
1187/(.*)a(b)\2/Is
1188
1189/((.*)a|(.*)b)z/Is
1190
1191/((.*)a|(.*)b)z\1/Is
1192
1193/((.*)a|(.*)b)z\2/Is
1194
1195/((.*)a|(.*)b)z\3/Is
1196
1197/((.*)a|^(.*)b)z\3/Is
1198
1199/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
1200
1201/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
1202
1203/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
1204
1205/(a)(bc)/INDZ
1206  abc
1207
1208/(?P<one>a)(bc)/INDZ
1209  abc
1210
1211/(a)(?P<named>bc)/INDZ
1212
1213/(a+)*zz/I
1214  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
1215  aaaaaaaaaaaaaz\M
1216
1217/(aaa(?C1)bbb|ab)/I
1218   aaabbb
1219   aaabbb\C*0
1220   aaabbb\C*1
1221   aaabbb\C*-1
1222
1223/ab(?P<one>cd)ef(?P<two>gh)/I
1224    abcdefgh
1225    abcdefgh\C1\Gtwo
1226    abcdefgh\Cone\Ctwo
1227    abcdefgh\Cthree
1228
1229/(?P<Tes>)(?P<Test>)/DZ
1230
1231/(?P<Test>)(?P<Tes>)/DZ
1232
1233/(?P<Z>zz)(?P<A>aa)/I
1234    zzaa\CZ
1235    zzaa\CA
1236
1237/(?P<x>eks)(?P<x>eccs)/I
1238
1239/(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
1240
1241"\[((?P<elem>\d+)(,(?P>elem))*)\]"I
1242    [10,20,30,5,5,4,4,2,43,23,4234]
1243    *** Failers
1244    []
1245
1246"\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
1247    [10,20,30,5,5,4,4,2,43,23,4234]
1248    []
1249
1250/(a(b(?2)c))?/DZ
1251
1252/(a(b(?2)c))*/DZ
1253
1254/(a(b(?2)c)){0,2}/DZ
1255
1256/[ab]{1}+/DZ
1257
1258/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
1259     Baby Bjorn Active Carrier - With free SHIPPING!!
1260
1261/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
1262     Baby Bjorn Active Carrier - With free SHIPPING!!
1263
1264/a*.*b/ISDZ
1265
1266/(a|b)*.?c/ISDZ
1267
1268/abc(?C255)de(?C)f/DZ
1269
1270/abcde/ICDZ
1271  abcde
1272  abcdfe
1273
1274/a*b/ICDZS
1275  ab
1276  aaaab
1277  aaaacb
1278
1279/a*b/ICDZSS
1280  ab
1281  aaaab
1282  aaaacb
1283
1284/a+b/ICDZ
1285  ab
1286  aaaab
1287  aaaacb
1288
1289/(abc|def)x/ICDZS
1290  abcx
1291  defx
1292  ** Failers
1293  abcdefzx
1294
1295/(abc|def)x/ICDZSS
1296  abcx
1297  defx
1298  ** Failers
1299  abcdefzx
1300
1301/(ab|cd){3,4}/IC
1302  ababab
1303  abcdabcd
1304  abcdcdcdcdcd
1305
1306/([ab]{,4}c|xy)/ICDZS
1307    Note: that { does NOT introduce a quantifier
1308
1309/([ab]{,4}c|xy)/ICDZSS
1310    Note: that { does NOT introduce a quantifier
1311
1312/([ab]{1,4}c|xy){4,5}?123/ICDZ
1313    aacaacaacaacaac123
1314
1315/\b.*/I
1316  ab cd\>1
1317
1318/\b.*/Is
1319  ab cd\>1
1320
1321/(?!.bcd).*/I
1322  Xbcd12345
1323
1324/abcde/I
1325    ab\P
1326    abc\P
1327    abcd\P
1328    abcde\P
1329    the quick brown abc\P
1330    ** Failers\P
1331    the quick brown abxyz fox\P
1332
1333"^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I
1334    13/05/04\P
1335    13/5/2004\P
1336    02/05/09\P
1337    1\P
1338    1/2\P
1339    1/2/0\P
1340    1/2/04\P
1341    0\P
1342    02/\P
1343    02/0\P
1344    02/1\P
1345    ** Failers\P
1346    \P
1347    123\P
1348    33/4/04\P
1349    3/13/04\P
1350    0/1/2003\P
1351    0/\P
1352    02/0/\P
1353    02/13\P
1354
1355/0{0,2}ABC/I
1356
1357/\d{3,}ABC/I
1358
1359/\d*ABC/I
1360
1361/[abc]+DE/I
1362
1363/[abc]?123/I
1364    123\P
1365    a\P
1366    b\P
1367    c\P
1368    c12\P
1369    c123\P
1370
1371/^(?:\d){3,5}X/I
1372    1\P
1373    123\P
1374    123X
1375    1234\P
1376    1234X
1377    12345\P
1378    12345X
1379    *** Failers
1380    1X
1381    123456\P
1382
1383//KF>testsavedregex
1384
1385/abc/IS>testsavedregex
1386<testsavedregex
1387    abc
1388    ** Failers
1389    bca
1390
1391/abc/ISS>testsavedregex
1392<testsavedregex
1393    abc
1394    ** Failers
1395    bca
1396
1397/abc/IFS>testsavedregex
1398<testsavedregex
1399    abc
1400    ** Failers
1401    bca
1402
1403/abc/IFSS>testsavedregex
1404<testsavedregex
1405    abc
1406    ** Failers
1407    bca
1408
1409/(a|b)/IS>testsavedregex
1410<testsavedregex
1411    abc
1412    ** Failers
1413    def
1414
1415/(a|b)/ISS>testsavedregex
1416<testsavedregex
1417    abc
1418    ** Failers
1419    def
1420
1421/(a|b)/ISF>testsavedregex
1422<testsavedregex
1423    abc
1424    ** Failers
1425    def
1426
1427/(a|b)/ISSF>testsavedregex
1428<testsavedregex
1429    abc
1430    ** Failers
1431    def
1432
1433~<(\w+)/?>(.)*</(\1)>~smgI
1434    \J1024<!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>
1435
1436/^a/IF
1437
1438/line\nbreak/I
1439    this is a line\nbreak
1440    line one\nthis is a line\nbreak in the second line
1441
1442/line\nbreak/If
1443    this is a line\nbreak
1444    ** Failers
1445    line one\nthis is a line\nbreak in the second line
1446
1447/line\nbreak/Imf
1448    this is a line\nbreak
1449    ** Failers
1450    line one\nthis is a line\nbreak in the second line
1451
1452/(?i)(?-i)AbCd/I
1453    AbCd
1454    ** Failers
1455    abcd
1456
1457/a{11111111111111111111}/I
1458
1459/(){64294967295}/I
1460
1461/(){2,4294967295}/I
1462
1463"(?i:a)(?i:b)(?i:c)(?i:d)(?i:e)(?i:f)(?i:g)(?i:h)(?i:i)(?i:j)(k)(?i:l)A\1B"I
1464    abcdefghijklAkB
1465
1466"(?P<n0>a)(?P<n1>b)(?P<n2>c)(?P<n3>d)(?P<n4>e)(?P<n5>f)(?P<n6>g)(?P<n7>h)(?P<n8>i)(?P<n9>j)(?P<n10>k)(?P<n11>l)A\11B"I
1467    abcdefghijklAkB
1468
1469"(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
1470    abcdefghijklAkB
1471
1472"(?P<name0>a)(?P<name1>a)(?P<name2>a)(?P<name3>a)(?P<name4>a)(?P<name5>a)(?P<name6>a)(?P<name7>a)(?P<name8>a)(?P<name9>a)(?P<name10>a)(?P<name11>a)(?P<name12>a)(?P<name13>a)(?P<name14>a)(?P<name15>a)(?P<name16>a)(?P<name17>a)(?P<name18>a)(?P<name19>a)(?P<name20>a)(?P<name21>a)(?P<name22>a)(?P<name23>a)(?P<name24>a)(?P<name25>a)(?P<name26>a)(?P<name27>a)(?P<name28>a)(?P<name29>a)(?P<name30>a)(?P<name31>a)(?P<name32>a)(?P<name33>a)(?P<name34>a)(?P<name35>a)(?P<name36>a)(?P<name37>a)(?P<name38>a)(?P<name39>a)(?P<name40>a)(?P<name41>a)(?P<name42>a)(?P<name43>a)(?P<name44>a)(?P<name45>a)(?P<name46>a)(?P<name47>a)(?P<name48>a)(?P<name49>a)(?P<name50>a)(?P<name51>a)(?P<name52>a)(?P<name53>a)(?P<name54>a)(?P<name55>a)(?P<name56>a)(?P<name57>a)(?P<name58>a)(?P<name59>a)(?P<name60>a)(?P<name61>a)(?P<name62>a)(?P<name63>a)(?P<name64>a)(?P<name65>a)(?P<name66>a)(?P<name67>a)(?P<name68>a)(?P<name69>a)(?P<name70>a)(?P<name71>a)(?P<name72>a)(?P<name73>a)(?P<name74>a)(?P<name75>a)(?P<name76>a)(?P<name77>a)(?P<name78>a)(?P<name79>a)(?P<name80>a)(?P<name81>a)(?P<name82>a)(?P<name83>a)(?P<name84>a)(?P<name85>a)(?P<name86>a)(?P<name87>a)(?P<name88>a)(?P<name89>a)(?P<name90>a)(?P<name91>a)(?P<name92>a)(?P<name93>a)(?P<name94>a)(?P<name95>a)(?P<name96>a)(?P<name97>a)(?P<name98>a)(?P<name99>a)(?P<name100>a)"I
1473    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1474
1475"(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)"I
1476    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1477
1478/[^()]*(?:\((?R)\)[^()]*)*/I
1479    (this(and)that
1480    (this(and)that)
1481    (this(and)that)stuff
1482
1483/[^()]*(?:\((?>(?R))\)[^()]*)*/I
1484    (this(and)that
1485    (this(and)that)
1486
1487/[^()]*(?:\((?R)\))*[^()]*/I
1488    (this(and)that
1489    (this(and)that)
1490
1491/(?:\((?R)\))*[^()]*/I
1492    (this(and)that
1493    (this(and)that)
1494    ((this))
1495
1496/(?:\((?R)\))|[^()]*/I
1497    (this(and)that
1498    (this(and)that)
1499    (this)
1500    ((this))
1501
1502/\x{0000ff}/I
1503
1504/^((?P<A>a1)|(?P<A>a2)b)/I
1505
1506/^((?P<A>a1)|(?P<A>a2)b)/IJ
1507    a1b\CA
1508    a2b\CA
1509    ** Failers
1510    a1b\CZ\CA
1511
1512/(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/IJ
1513
1514/^(?P<A>a)(?P<A>b)/IJ
1515    ab\CA
1516
1517/^(?P<A>a)(?P<A>b)|cd/IJ
1518    ab\CA
1519    cd\CA
1520
1521/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
1522    cdefgh\CA
1523
1524/^((?P<A>a1)|(?P<A>a2)b)/IJ
1525    a1b\GA
1526    a2b\GA
1527    ** Failers
1528    a1b\GZ\GA
1529
1530/^(?P<A>a)(?P<A>b)/IJ
1531    ab\GA
1532
1533/^(?P<A>a)(?P<A>b)|cd/IJ
1534    ab\GA
1535    cd\GA
1536
1537/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
1538    cdefgh\GA
1539
1540/(?J)^((?P<A>a1)|(?P<A>a2)b)/I
1541    a1b\CA
1542    a2b\CA
1543
1544/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I
1545
1546/ In this next test, J is not set at the outer level; consequently it isn't
1547set in the pattern's options; consequently pcre_get_named_substring() produces
1548a random value. /Ix
1549
1550/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
1551    a bc d\CA\CB\CC
1552
1553/^(?P<A>a)?(?(A)a|b)/I
1554    aabc
1555    bc
1556    ** Failers
1557    abc
1558
1559/(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
1560    bXaX
1561
1562/(?:(?(2y)a|b)(X))+/I
1563
1564/(?:(?(ZA)a|b)(?P<ZZ>X))+/I
1565
1566/(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
1567    bbXaaX
1568
1569/(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
1570    (b)\\Xa\\X
1571
1572/(?P<ABC/I
1573
1574/(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
1575    bXXaYYaY
1576    bXYaXXaX
1577
1578/()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
1579    bXXaYYaY
1580
1581/\s*,\s*/IS
1582    \x0b,\x0b
1583    \x0c,\x0d
1584
1585/^abc/Im
1586    xyz\nabc
1587    xyz\nabc\<lf>
1588    xyz\r\nabc\<lf>
1589    xyz\rabc\<cr>
1590    xyz\r\nabc\<crlf>
1591    ** Failers
1592    xyz\nabc\<cr>
1593    xyz\r\nabc\<cr>
1594    xyz\nabc\<crlf>
1595    xyz\rabc\<crlf>
1596    xyz\rabc\<lf>
1597
1598/abc$/Im<lf>
1599    xyzabc
1600    xyzabc\n
1601    xyzabc\npqr
1602    xyzabc\r\<cr>
1603    xyzabc\rpqr\<cr>
1604    xyzabc\r\n\<crlf>
1605    xyzabc\r\npqr\<crlf>
1606    ** Failers
1607    xyzabc\r
1608    xyzabc\rpqr
1609    xyzabc\r\n
1610    xyzabc\r\npqr
1611
1612/^abc/Im<cr>
1613    xyz\rabcdef
1614    xyz\nabcdef\<lf>
1615    ** Failers
1616    xyz\nabcdef
1617
1618/^abc/Im<lf>
1619    xyz\nabcdef
1620    xyz\rabcdef\<cr>
1621    ** Failers
1622    xyz\rabcdef
1623
1624/^abc/Im<crlf>
1625    xyz\r\nabcdef
1626    xyz\rabcdef\<cr>
1627    ** Failers
1628    xyz\rabcdef
1629
1630/^abc/Im<bad>
1631
1632/abc/I
1633    xyz\rabc\<bad>
1634    abc
1635
1636/.*/I<lf>
1637    abc\ndef
1638    abc\rdef
1639    abc\r\ndef
1640    \<cr>abc\ndef
1641    \<cr>abc\rdef
1642    \<cr>abc\r\ndef
1643    \<crlf>abc\ndef
1644    \<crlf>abc\rdef
1645    \<crlf>abc\r\ndef
1646
1647/\w+(.)(.)?def/Is
1648    abc\ndef
1649    abc\rdef
1650    abc\r\ndef
1651
1652+((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
1653   /* this is a C style comment */\M
1654
1655/(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I
1656
1657/()()()()()()()()()()()()()()()()()()()()
1658 ()()()()()()()()()()()()()()()()()()()()
1659 ()()()()()()()()()()()()()()()()()()()()
1660 ()()()()()()()()()()()()()()()()()()()()
1661 ()()()()()()()()()()()()()()()()()()()()
1662 (.(.))/Ix
1663    XY\O400
1664
1665/(a*b|(?i:c*(?-i)d))/IS
1666
1667/()[ab]xyz/IS
1668
1669/(|)[ab]xyz/IS
1670
1671/(|c)[ab]xyz/IS
1672
1673/(|c?)[ab]xyz/IS
1674
1675/(d?|c?)[ab]xyz/IS
1676
1677/(d?|c)[ab]xyz/IS
1678
1679/^a*b\d/DZ
1680
1681/^a*+b\d/DZ
1682
1683/^a*?b\d/DZ
1684
1685/^a+A\d/DZ
1686    aaaA5
1687    ** Failers
1688    aaaa5
1689
1690/^a*A\d/IiDZ
1691    aaaA5
1692    aaaa5
1693
1694/(a*|b*)[cd]/IS
1695
1696/(a+|b*)[cd]/IS
1697
1698/(a*|b+)[cd]/IS
1699
1700/(a+|b+)[cd]/IS
1701
1702/((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
1703 ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
1704 (((
1705 a
1706 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
1707 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
1708 )))
1709/Ix
1710  large nest
1711
1712/a*\d/BZ
1713
1714/a*\D/BZ
1715
1716/0*\d/BZ
1717
1718/0*\D/BZ
1719
1720/a*\s/BZ
1721
1722/a*\S/BZ
1723
1724/ *\s/BZ
1725
1726/ *\S/BZ
1727
1728/a*\w/BZ
1729
1730/a*\W/BZ
1731
1732/=*\w/BZ
1733
1734/=*\W/BZ
1735
1736/\d*a/BZ
1737
1738/\d*2/BZ
1739
1740/\d*\d/BZ
1741
1742/\d*\D/BZ
1743
1744/\d*\s/BZ
1745
1746/\d*\S/BZ
1747
1748/\d*\w/BZ
1749
1750/\d*\W/BZ
1751
1752/\D*a/BZ
1753
1754/\D*2/BZ
1755
1756/\D*\d/BZ
1757
1758/\D*\D/BZ
1759
1760/\D*\s/BZ
1761
1762/\D*\S/BZ
1763
1764/\D*\w/BZ
1765
1766/\D*\W/BZ
1767
1768/\s*a/BZ
1769
1770/\s*2/BZ
1771
1772/\s*\d/BZ
1773
1774/\s*\D/BZ
1775
1776/\s*\s/BZ
1777
1778/\s*\S/BZ
1779
1780/\s*\w/BZ
1781
1782/\s*\W/BZ
1783
1784/\S*a/BZ
1785
1786/\S*2/BZ
1787
1788/\S*\d/BZ
1789
1790/\S*\D/BZ
1791
1792/\S*\s/BZ
1793
1794/\S*\S/BZ
1795
1796/\S*\w/BZ
1797
1798/\S*\W/BZ
1799
1800/\w*a/BZ
1801
1802/\w*2/BZ
1803
1804/\w*\d/BZ
1805
1806/\w*\D/BZ
1807
1808/\w*\s/BZ
1809
1810/\w*\S/BZ
1811
1812/\w*\w/BZ
1813
1814/\w*\W/BZ
1815
1816/\W*a/BZ
1817
1818/\W*2/BZ
1819
1820/\W*\d/BZ
1821
1822/\W*\D/BZ
1823
1824/\W*\s/BZ
1825
1826/\W*\S/BZ
1827
1828/\W*\w/BZ
1829
1830/\W*\W/BZ
1831
1832/[^a]+a/BZ
1833
1834/[^a]+a/BZi
1835
1836/[^a]+A/BZi
1837
1838/[^a]+b/BZ
1839
1840/[^a]+\d/BZ
1841
1842/a*[^a]/BZ
1843
1844/(?P<abc>x)(?P<xyz>y)/I
1845    xy\Cabc\Cxyz
1846
1847/(?<abc>x)(?'xyz'y)/I
1848    xy\Cabc\Cxyz
1849
1850/(?<abc'x)(?'xyz'y)/I
1851
1852/(?<abc>x)(?'xyz>y)/I
1853
1854/(?P'abc'x)(?P<xyz>y)/I
1855
1856/^(?:(?(ZZ)a|b)(?<ZZ>X))+/
1857    bXaX
1858    bXbX
1859    ** Failers
1860    aXaX
1861    aXbX
1862
1863/^(?P>abc)(?<abcd>xxx)/
1864
1865/^(?P>abc)(?<abc>x|y)/
1866    xx
1867    xy
1868    yy
1869    yx
1870
1871/^(?P>abc)(?P<abc>x|y)/
1872    xx
1873    xy
1874    yy
1875    yx
1876
1877/^((?(abc)a|b)(?<abc>x|y))+/
1878    bxay
1879    bxby
1880    ** Failers
1881    axby
1882
1883/^(((?P=abc)|X)(?<abc>x|y))+/
1884    XxXxxx
1885    XxXyyx
1886    XxXyxx
1887    ** Failers
1888    x
1889
1890/^(?1)(abc)/
1891    abcabc
1892
1893/^(?:(?:\1|X)(a|b))+/
1894    Xaaa
1895    Xaba
1896
1897/^[\E\Qa\E-\Qz\E]+/BZ
1898
1899/^[a\Q]bc\E]/BZ
1900
1901/^[a-\Q\E]/BZ
1902
1903/^(?P>abc)[()](?<abc>)/BZ
1904
1905/^((?(abc)y)[()](?P<abc>x))+/BZ
1906    (xy)x
1907
1908/^(?P>abc)\Q()\E(?<abc>)/BZ
1909
1910/^(?P>abc)[a\Q(]\E(](?<abc>)/BZ
1911
1912/^(?P>abc) # this is (a comment)
1913  (?<abc>)/BZx
1914
1915/^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii
1916    1221
1917    Satan, oscillate my metallic sonatas!
1918    A man, a plan, a canal: Panama!
1919    Able was I ere I saw Elba.
1920    *** Failers
1921    The quick brown fox
1922
1923/(?=(\w+))\1:/I
1924    abcd:
1925
1926/(?=(?'abc'\w+))\k<abc>:/I
1927    abcd:
1928
1929/(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
1930    adaa
1931    ** Failers
1932    addd
1933    adbb
1934
1935/(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J
1936    bdaa
1937    bdab
1938    ** Failers
1939    bddd
1940
1941/(?(<bc))/
1942
1943/(?(''))/
1944
1945/(?('R')stuff)/
1946
1947/((abc (?(R) (?(R1)1) (?(R2)2) X  |  (?1)  (?2)   (?R) ))) /x
1948    abcabc1Xabc2XabcXabcabc
1949
1950/(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
1951    abcabc1Xabc2XabcXabcabc
1952
1953/(?<A> (?'B' abc (?(R) (?(R&C)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
1954
1955/^(?(DEFINE) abc | xyz ) /x
1956
1957/(?(DEFINE) abc) xyz/xI
1958
1959/(a|)*\d/
1960  \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1961  \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
1962
1963/^a.b/<lf>
1964    a\rb
1965    a\nb\<cr>
1966    a\x85b\<anycrlf>
1967    ** Failers
1968    a\nb
1969    a\nb\<any>
1970    a\rb\<cr>
1971    a\rb\<any>
1972    a\x85b\<any>
1973    a\rb\<anycrlf>
1974
1975/^abc./mgx<any>
1976    abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
1977
1978/abc.$/mgx<any>
1979    abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
1980
1981/a/<cr><any>
1982
1983/a/<any><crlf>
1984
1985/^a\Rb/<bsr_unicode>
1986    a\nb
1987    a\rb
1988    a\r\nb
1989    a\x0bb
1990    a\x0cb
1991    a\x85b
1992    ** Failers
1993    a\n\rb
1994
1995/^a\R*b/<bsr_unicode>
1996    ab
1997    a\nb
1998    a\rb
1999    a\r\nb
2000    a\x0bb
2001    a\x0cb
2002    a\x85b
2003    a\n\rb
2004    a\n\r\x85\x0cb
2005
2006/^a\R+b/<bsr_unicode>
2007    a\nb
2008    a\rb
2009    a\r\nb
2010    a\x0bb
2011    a\x0cb
2012    a\x85b
2013    a\n\rb
2014    a\n\r\x85\x0cb
2015    ** Failers
2016    ab
2017
2018/^a\R{1,3}b/<bsr_unicode>
2019    a\nb
2020    a\n\rb
2021    a\n\r\x85b
2022    a\r\n\r\nb
2023    a\r\n\r\n\r\nb
2024    a\n\r\n\rb
2025    a\n\n\r\nb
2026    ** Failers
2027    a\n\n\n\rb
2028    a\r
2029
2030/^a[\R]b/<bsr_unicode>
2031    aRb
2032    ** Failers
2033    a\nb
2034
2035/(?&abc)X(?<abc>P)/I
2036    abcPXP123
2037
2038/(?1)X(?<abc>P)/I
2039    abcPXP123
2040
2041/(?:a(?&abc)b)*(?<abc>x)/
2042    123axbaxbaxbx456
2043    123axbaxbaxb456
2044
2045/(?:a(?&abc)b){1,5}(?<abc>x)/
2046    123axbaxbaxbx456
2047
2048/(?:a(?&abc)b){2,5}(?<abc>x)/
2049    123axbaxbaxbx456
2050
2051/(?:a(?&abc)b){2,}(?<abc>x)/
2052    123axbaxbaxbx456
2053
2054/(abc)(?i:(?1))/
2055   defabcabcxyz
2056   DEFabcABCXYZ
2057
2058/(abc)(?:(?i)(?1))/
2059   defabcabcxyz
2060   DEFabcABCXYZ
2061
2062/^(a)\g-2/
2063
2064/^(a)\g/
2065
2066/^(a)\g{0}/
2067
2068/^(a)\g{3/
2069
2070/^(a)\g{aa}/
2071
2072/^a.b/<lf>
2073    a\rb
2074    *** Failers
2075    a\nb
2076
2077/.+foo/
2078    afoo
2079    ** Failers
2080    \r\nfoo
2081    \nfoo
2082
2083/.+foo/<crlf>
2084    afoo
2085    \nfoo
2086    ** Failers
2087    \r\nfoo
2088
2089/.+foo/<any>
2090    afoo
2091    ** Failers
2092    \nfoo
2093    \r\nfoo
2094
2095/.+foo/s
2096    afoo
2097    \r\nfoo
2098    \nfoo
2099
2100/^$/mg<any>
2101    abc\r\rxyz
2102    abc\n\rxyz
2103    ** Failers
2104    abc\r\nxyz
2105
2106/(?m)^$/<any>g+
2107    abc\r\n\r\n
2108
2109/(?m)^$|^\r\n/<any>g+
2110    abc\r\n\r\n
2111
2112/(?m)$/<any>g+
2113    abc\r\n\r\n
2114
2115/abc.$/mgx<anycrlf>
2116    abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
2117
2118/^X/m
2119    XABC
2120    ** Failers
2121    XABC\B
2122
2123/(ab|c)(?-1)/BZ
2124    abc
2125
2126/xy(?+1)(abc)/BZ
2127    xyabcabc
2128    ** Failers
2129    xyabc
2130
2131/x(?-0)y/
2132
2133/x(?-1)y/
2134
2135/x(?+0)y/
2136
2137/x(?+1)y/
2138
2139/^(abc)?(?(-1)X|Y)/BZ
2140    abcX
2141    Y
2142    ** Failers
2143    abcY
2144
2145/^((?(+1)X|Y)(abc))+/BZ
2146    YabcXabc
2147    YabcXabcXabc
2148    ** Failers
2149    XabcXabc
2150
2151/(?(-1)a)/BZ
2152
2153/((?(-1)a))/BZ
2154
2155/((?(-2)a))/BZ
2156
2157/^(?(+1)X|Y)(.)/BZ
2158    Y!
2159
2160/(?<A>tom|bon)-\k{A}/
2161    tom-tom
2162    bon-bon
2163    ** Failers
2164    tom-bon
2165
2166/\g{A/
2167
2168/(?|(abc)|(xyz))/BZ
2169   >abc<
2170   >xyz<
2171
2172/(x)(?|(abc)|(xyz))(x)/BZ
2173    xabcx
2174    xxyzx
2175
2176/(x)(?|(abc)(pqr)|(xyz))(x)/BZ
2177    xabcpqrx
2178    xxyzx
2179
2180/\H++X/BZ
2181    ** Failers
2182    XXXX
2183
2184/\H+\hY/BZ
2185    XXXX Y
2186
2187/\H+ Y/BZ
2188
2189/\h+A/BZ
2190
2191/\v*B/BZ
2192
2193/\V+\x0a/BZ
2194
2195/A+\h/BZ
2196
2197/ *\H/BZ
2198
2199/A*\v/BZ
2200
2201/\x0b*\V/BZ
2202
2203/\d+\h/BZ
2204
2205/\d*\v/BZ
2206
2207/S+\h\S+\v/BZ
2208
2209/\w{3,}\h\w+\v/BZ
2210
2211/\h+\d\h+\w\h+\S\h+\H/BZ
2212
2213/\v+\d\v+\w\v+\S\v+\V/BZ
2214
2215/\H+\h\H+\d/BZ
2216
2217/\V+\v\V+\w/BZ
2218
2219/\( (?: [^()]* | (?R) )* \)/x
2220\J1024(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
2221
2222/[\E]AAA/
2223
2224/[\Q\E]AAA/
2225
2226/[^\E]AAA/
2227
2228/[^\Q\E]AAA/
2229
2230/[\E^]AAA/
2231
2232/[\Q\E^]AAA/
2233
2234/A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
2235
2236/^a+(*FAIL)/C
2237    aaaaaa
2238
2239/a+b?c+(*FAIL)/C
2240    aaabccc
2241
2242/a+b?(*PRUNE)c+(*FAIL)/C
2243    aaabccc
2244
2245/a+b?(*COMMIT)c+(*FAIL)/C
2246    aaabccc
2247
2248/a+b?(*SKIP)c+(*FAIL)/C
2249    aaabcccaaabccc
2250
2251/a+b?(*THEN)c+(*FAIL)/C
2252    aaabccc
2253
2254/a(*MARK)b/
2255
2256/(?i:A{1,}\6666666666)/
2257
2258/\g6666666666/
2259
2260/[\g6666666666]/BZ
2261
2262/(?1)\c[/
2263
2264/.+A/<crlf>
2265    \r\nA
2266
2267/\nA/<crlf>
2268    \r\nA
2269
2270/[\r\n]A/<crlf>
2271    \r\nA
2272
2273/(\r|\n)A/<crlf>
2274    \r\nA
2275
2276/a(*CR)b/
2277
2278/(*CR)a.b/
2279    a\nb
2280    ** Failers
2281    a\rb
2282
2283/(*CR)a.b/<lf>
2284    a\nb
2285    ** Failers
2286    a\rb
2287
2288/(*LF)a.b/<CRLF>
2289    a\rb
2290    ** Failers
2291    a\nb
2292
2293/(*CRLF)a.b/
2294    a\rb
2295    a\nb
2296    ** Failers
2297    a\r\nb
2298
2299/(*ANYCRLF)a.b/<CR>
2300    ** Failers
2301    a\rb
2302    a\nb
2303    a\r\nb
2304
2305/(*ANY)a.b/<cr>
2306    ** Failers
2307    a\rb
2308    a\nb
2309    a\r\nb
2310    a\x85b
2311
2312/(*ANY).*/g
2313    abc\r\ndef
2314
2315/(*ANYCRLF).*/g
2316    abc\r\ndef
2317
2318/(*CRLF).*/g
2319    abc\r\ndef
2320
2321/a\Rb/I<bsr_anycrlf>
2322    a\rb
2323    a\nb
2324    a\r\nb
2325    ** Failers
2326    a\x85b
2327    a\x0bb
2328
2329/a\Rb/I<bsr_unicode>
2330    a\rb
2331    a\nb
2332    a\r\nb
2333    a\x85b
2334    a\x0bb
2335    ** Failers
2336    a\x85b\<bsr_anycrlf>
2337    a\x0bb\<bsr_anycrlf>
2338
2339/a\R?b/I<bsr_anycrlf>
2340    a\rb
2341    a\nb
2342    a\r\nb
2343    ** Failers
2344    a\x85b
2345    a\x0bb
2346
2347/a\R?b/I<bsr_unicode>
2348    a\rb
2349    a\nb
2350    a\r\nb
2351    a\x85b
2352    a\x0bb
2353    ** Failers
2354    a\x85b\<bsr_anycrlf>
2355    a\x0bb\<bsr_anycrlf>
2356
2357/a\R{2,4}b/I<bsr_anycrlf>
2358    a\r\n\nb
2359    a\n\r\rb
2360    a\r\n\r\n\r\n\r\nb
2361    ** Failers
2362    a\x85\85b
2363    a\x0b\0bb
2364
2365/a\R{2,4}b/I<bsr_unicode>
2366    a\r\rb
2367    a\n\n\nb
2368    a\r\n\n\r\rb
2369    a\x85\85b
2370    a\x0b\0bb
2371    ** Failers
2372    a\r\r\r\r\rb
2373    a\x85\85b\<bsr_anycrlf>
2374    a\x0b\0bb\<bsr_anycrlf>
2375
2376/(*BSR_ANYCRLF)a\Rb/I
2377    a\nb
2378    a\rb
2379
2380/(*BSR_UNICODE)a\Rb/I
2381    a\x85b
2382
2383/(*BSR_ANYCRLF)(*CRLF)a\Rb/I
2384    a\nb
2385    a\rb
2386
2387/(*CRLF)(*BSR_UNICODE)a\Rb/I
2388    a\x85b
2389
2390/(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
2391
2392/(?<a>)(?&)/
2393
2394/(?<abc>)(?&a)/
2395
2396/(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
2397
2398/(?+-a)/
2399
2400/(?-+a)/
2401
2402/(?(-1))/
2403
2404/(?(+10))/
2405
2406/(?(10))/
2407
2408/(?(+2))()()/
2409
2410/(?(2))()()/
2411
2412/\k''/
2413
2414/\k<>/
2415
2416/\k{}/
2417
2418/\k/
2419
2420/\kabc/
2421
2422/(?P=)/
2423
2424/(?P>)/
2425
2426/(?!\w)(?R)/
2427
2428/(?=\w)(?R)/
2429
2430/(?<!\w)(?R)/
2431
2432/(?<=\w)(?R)/
2433
2434/[[:foo:]]/
2435
2436/[[:1234:]]/
2437
2438/[[:f\oo:]]/
2439
2440/[[: :]]/
2441
2442/[[:...:]]/
2443
2444/[[:l\ower:]]/
2445
2446/[[:abc\:]]/
2447
2448/[abc[:x\]pqr:]]/
2449
2450/[[:a\dz:]]/
2451
2452/(^(a|b\g<-1'c))/
2453
2454/^(?+1)(?<a>x|y){0}z/
2455    xzxx
2456    yzyy
2457    ** Failers
2458    xxz
2459
2460/(\3)(\1)(a)/
2461    cat
2462
2463/(\3)(\1)(a)/<JS>
2464    cat
2465
2466/TA]/
2467    The ACTA] comes
2468
2469/TA]/<JS>
2470    The ACTA] comes
2471
2472/(?2)[]a()b](abc)/
2473    abcbabc
2474
2475/(?2)[^]a()b](abc)/
2476    abcbabc
2477
2478/(?1)[]a()b](abc)/
2479    abcbabc
2480    ** Failers
2481    abcXabc
2482
2483/(?1)[^]a()b](abc)/
2484    abcXabc
2485    ** Failers
2486    abcbabc
2487
2488/(?2)[]a()b](abc)(xyz)/
2489    xyzbabcxyz
2490
2491/(?&N)[]a(?<N>)](?<M>abc)/
2492   abc<abc
2493
2494/(?&N)[]a(?<N>)](abc)/
2495   abc<abc
2496
2497/a[]b/
2498
2499/a[^]b/
2500
2501/a[]b/<JS>
2502    ** Failers
2503    ab
2504
2505/a[]+b/<JS>
2506    ** Failers
2507    ab
2508
2509/a[]*+b/<JS>
2510    ** Failers
2511    ab
2512
2513/a[^]b/<JS>
2514    aXb
2515    a\nb
2516    ** Failers
2517    ab
2518
2519/a[^]+b/<JS>
2520    aXb
2521    a\nX\nXb
2522    ** Failers
2523    ab
2524
2525/a(?!)b/BZ
2526
2527/(?!)?a/BZ
2528    ab
2529
2530/a(*FAIL)+b/
2531
2532/(abc|pqr|123){0}[xyz]/SI
2533
2534/(?(?=.*b)b|^)/CI
2535   adc
2536   abc
2537
2538/(?(?=b).*b|^d)/I
2539
2540/(?(?=.*b).*b|^d)/I
2541
2542/xyz/C
2543  xyz
2544  abcxyz
2545  abcxyz\Y
2546  ** Failers
2547  abc
2548  abc\Y
2549  abcxypqr
2550  abcxypqr\Y
2551
2552/(*NO_START_OPT)xyz/C
2553  abcxyz
2554
2555/(*NO_AUTO_POSSESS)a+b/BZ
2556
2557/xyz/CY
2558  abcxyz
2559
2560/^"((?(?=[a])[^"])|b)*"$/C
2561    "ab"
2562
2563/^"((?(?=[a])[^"])|b)*"$/
2564    "ab"
2565
2566/^X(?5)(a)(?|(b)|(q))(c)(d)Y/
2567    XYabcdY
2568
2569/^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
2570    XYabcdY
2571
2572/Xa{2,4}b/
2573    X\P
2574    Xa\P
2575    Xaa\P
2576    Xaaa\P
2577    Xaaaa\P
2578
2579/Xa{2,4}?b/
2580    X\P
2581    Xa\P
2582    Xaa\P
2583    Xaaa\P
2584    Xaaaa\P
2585
2586/Xa{2,4}+b/
2587    X\P
2588    Xa\P
2589    Xaa\P
2590    Xaaa\P
2591    Xaaaa\P
2592
2593/X\d{2,4}b/
2594    X\P
2595    X3\P
2596    X33\P
2597    X333\P
2598    X3333\P
2599
2600/X\d{2,4}?b/
2601    X\P
2602    X3\P
2603    X33\P
2604    X333\P
2605    X3333\P
2606
2607/X\d{2,4}+b/
2608    X\P
2609    X3\P
2610    X33\P
2611    X333\P
2612    X3333\P
2613
2614/X\D{2,4}b/
2615    X\P
2616    Xa\P
2617    Xaa\P
2618    Xaaa\P
2619    Xaaaa\P
2620
2621/X\D{2,4}?b/
2622    X\P
2623    Xa\P
2624    Xaa\P
2625    Xaaa\P
2626    Xaaaa\P
2627
2628/X\D{2,4}+b/
2629    X\P
2630    Xa\P
2631    Xaa\P
2632    Xaaa\P
2633    Xaaaa\P
2634
2635/X[abc]{2,4}b/
2636    X\P
2637    Xa\P
2638    Xaa\P
2639    Xaaa\P
2640    Xaaaa\P
2641
2642/X[abc]{2,4}?b/
2643    X\P
2644    Xa\P
2645    Xaa\P
2646    Xaaa\P
2647    Xaaaa\P
2648
2649/X[abc]{2,4}+b/
2650    X\P
2651    Xa\P
2652    Xaa\P
2653    Xaaa\P
2654    Xaaaa\P
2655
2656/X[^a]{2,4}b/
2657    X\P
2658    Xz\P
2659    Xzz\P
2660    Xzzz\P
2661    Xzzzz\P
2662
2663/X[^a]{2,4}?b/
2664    X\P
2665    Xz\P
2666    Xzz\P
2667    Xzzz\P
2668    Xzzzz\P
2669
2670/X[^a]{2,4}+b/
2671    X\P
2672    Xz\P
2673    Xzz\P
2674    Xzzz\P
2675    Xzzzz\P
2676
2677/(Y)X\1{2,4}b/
2678    YX\P
2679    YXY\P
2680    YXYY\P
2681    YXYYY\P
2682    YXYYYY\P
2683
2684/(Y)X\1{2,4}?b/
2685    YX\P
2686    YXY\P
2687    YXYY\P
2688    YXYYY\P
2689    YXYYYY\P
2690
2691/(Y)X\1{2,4}+b/
2692    YX\P
2693    YXY\P
2694    YXYY\P
2695    YXYYY\P
2696    YXYYYY\P
2697
2698/\++\KZ|\d+X|9+Y/
2699    ++++123999\P
2700    ++++123999Y\P
2701    ++++Z1234\P
2702
2703/Z(*F)/
2704    Z\P
2705    ZA\P
2706
2707/Z(?!)/
2708    Z\P
2709    ZA\P
2710
2711/dog(sbody)?/
2712    dogs\P
2713    dogs\P\P
2714
2715/dog(sbody)??/
2716    dogs\P
2717    dogs\P\P
2718
2719/dog|dogsbody/
2720    dogs\P
2721    dogs\P\P
2722
2723/dogsbody|dog/
2724    dogs\P
2725    dogs\P\P
2726
2727/\bthe cat\b/
2728    the cat\P
2729    the cat\P\P
2730
2731/abc/
2732   abc\P
2733   abc\P\P
2734
2735/abc\K123/
2736    xyzabc123pqr
2737    xyzabc12\P
2738    xyzabc12\P\P
2739
2740/(?<=abc)123/
2741    xyzabc123pqr
2742    xyzabc12\P
2743    xyzabc12\P\P
2744
2745/\babc\b/
2746    +++abc+++
2747    +++ab\P
2748    +++ab\P\P
2749
2750/(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
2751
2752/(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
2753
2754/(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
2755
2756/abc\K/+
2757    abcdef
2758    abcdef\N\N
2759    xyzabcdef\N\N
2760    ** Failers
2761    abcdef\N
2762    xyzabcdef\N
2763
2764/^(?:(?=abc)|abc\K)/+
2765    abcdef
2766    abcdef\N\N
2767    ** Failers
2768    abcdef\N
2769
2770/a?b?/+
2771    xyz
2772    xyzabc
2773    xyzabc\N
2774    xyzabc\N\N
2775    xyz\N\N
2776    ** Failers
2777    xyz\N
2778
2779/^a?b?/+
2780    xyz
2781    xyzabc
2782    ** Failers
2783    xyzabc\N
2784    xyzabc\N\N
2785    xyz\N\N
2786    xyz\N
2787
2788/^(?<name>a|b\g<name>c)/
2789    aaaa
2790    bacxxx
2791    bbaccxxx
2792    bbbacccxx
2793
2794/^(?<name>a|b\g'name'c)/
2795    aaaa
2796    bacxxx
2797    bbaccxxx
2798    bbbacccxx
2799
2800/^(a|b\g<1>c)/
2801    aaaa
2802    bacxxx
2803    bbaccxxx
2804    bbbacccxx
2805
2806/^(a|b\g'1'c)/
2807    aaaa
2808    bacxxx
2809    bbaccxxx
2810    bbbacccxx
2811
2812/^(a|b\g'-1'c)/
2813    aaaa
2814    bacxxx
2815    bbaccxxx
2816    bbbacccxx
2817
2818/(^(a|b\g<-1>c))/
2819    aaaa
2820    bacxxx
2821    bbaccxxx
2822    bbbacccxx
2823
2824/(?-i:\g<name>)(?i:(?<name>a))/
2825    XaaX
2826    XAAX
2827
2828/(?i:\g<name>)(?-i:(?<name>a))/
2829    XaaX
2830    ** Failers
2831    XAAX
2832
2833/(?-i:\g<+1>)(?i:(a))/
2834    XaaX
2835    XAAX
2836
2837/(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/
2838
2839/(?<n>a|b|c)\g<n>*/
2840   abc
2841   accccbbb
2842
2843/^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
2844    XYabcdY
2845
2846/(?<=b(?1)|zzz)(a)/
2847    xbaax
2848    xzzzax
2849
2850/(a)(?<=b\1)/
2851
2852/(a)(?<=b+(?1))/
2853
2854/(a+)(?<=b(?1))/
2855
2856/(a(?<=b(?1)))/
2857
2858/(?<=b(?1))xyz/
2859
2860/(?<=b(?1))xyz(b+)pqrstuvew/
2861
2862/(a|bc)\1/SI
2863
2864/(a|bc)\1{2,3}/SI
2865
2866/(a|bc)(?1)/SI
2867
2868/(a|b\1)(a|b\1)/SI
2869
2870/(a|b\1){2}/SI
2871
2872/(a|bbbb\1)(a|bbbb\1)/SI
2873
2874/(a|bbbb\1){2}/SI
2875
2876/^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/SI
2877
2878/<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS
2879
2880"(?>.*/)foo"SI
2881
2882/(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
2883
2884/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
2885
2886/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
2887
2888/<a[\s]+href[\s]*=[\s]*          # find <a href=
2889 ([\"\'])?                       # find single or double quote
2890 (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
2891                                 # quote, otherwise match up to next space
2892/isxSI
2893
2894/^(?!:)                       # colon disallowed at start
2895  (?:                         # start of item
2896    (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
2897    (?(1)0 | () ) )           # if null previously matched, fail; else null
2898    :                         # followed by colon
2899  ){1,7}                      # end item; 1-7 of them required
2900  [0-9a-f]{1,4} $             # final hex number at end of string
2901  (?(1)|.)                    # check that there was an empty component
2902  /xiIS
2903
2904/(?|(?<a>A)|(?<a>B))/I
2905    AB\Ca
2906    BA\Ca
2907
2908/(?|(?<a>A)|(?<b>B))/
2909
2910/(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
2911    b(?<quote> (?<apostrophe>')|(?<realquote>")) )
2912    (?('quote')[a-z]+|[0-9]+)/JIx
2913    a"aaaaa
2914    b"aaaaa
2915    ** Failers
2916    b"11111
2917    a"11111
2918
2919/^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
2920    abcdX
2921    eX
2922    ** Failers
2923    abcdY
2924    ey
2925
2926/(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/JDZx
2927    abcdd
2928    ** Failers
2929    abcdde
2930
2931/abcd*/
2932    xxxxabcd\P
2933    xxxxabcd\P\P
2934
2935/abcd*/i
2936    xxxxabcd\P
2937    xxxxabcd\P\P
2938    XXXXABCD\P
2939    XXXXABCD\P\P
2940
2941/abc\d*/
2942    xxxxabc1\P
2943    xxxxabc1\P\P
2944
2945/(a)bc\1*/
2946    xxxxabca\P
2947    xxxxabca\P\P
2948
2949/abc[de]*/
2950    xxxxabcde\P
2951    xxxxabcde\P\P
2952
2953/-- This is not in the Perl-compatible test because Perl seems currently to be
2954    broken and not behaving as specified in that it *does* bumpalong after
2955    hitting (*COMMIT). --/
2956
2957/(?1)(A(*COMMIT)|B)D/
2958    ABD
2959    XABD
2960    BAD
2961    ABXABD
2962    ** Failers
2963    ABX
2964    BAXBAD
2965
2966/(\3)(\1)(a)/<JS>
2967    cat
2968
2969/(\3)(\1)(a)/SI<JS>
2970    cat
2971
2972/(\3)(\1)(a)/SI
2973    cat
2974
2975/i(?(DEFINE)(?<s>a))/SI
2976    i
2977
2978/()i(?(1)a)/SI
2979    ia
2980
2981/(?i)a(?-i)b|c/BZ
2982    XabX
2983    XAbX
2984    CcC
2985    ** Failers
2986    XABX
2987
2988/(?i)a(?s)b|c/BZ
2989
2990/(?i)a(?s-i)b|c/BZ
2991
2992/^(ab(c\1)d|x){2}$/BZ
2993    xabcxd
2994
2995/^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
2996
2997/^(?&t)*(?(DEFINE)(?<t>.))$/BZ
2998
2999/ -- This one is here because Perl gives the match as "b" rather than "ab". I
3000     believe this to be a Perl bug. --/
3001
3002/(?>a\Kb)z|(ab)/
3003    ab
3004
3005/(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
3006
3007/abc(*MARK:)pqr/
3008
3009/abc(*:)pqr/
3010
3011/abc(*FAIL:123)xyz/
3012
3013/--- This should, and does, fail. In Perl, it does not, which I think is a
3014     bug because replacing the B in the pattern by (B|D) does make it fail. ---/
3015
3016/A(*COMMIT)B/+K
3017    ACABX
3018
3019/--- These should be different, but in Perl they are not, which I think
3020     is a bug in Perl. ---/
3021
3022/A(*THEN)B|A(*THEN)C/K
3023    AC
3024
3025/A(*PRUNE)B|A(*PRUNE)C/K
3026    AC
3027
3028/--- Mark names can be duplicated. Perl doesn't give a mark for this one,
3029though PCRE does. ---/
3030
3031/^A(*:A)B|^X(*:A)Y/K
3032    ** Failers
3033    XAQQ
3034
3035/--- COMMIT at the start of a pattern should be the same as an anchor. Perl
3036optimizations defeat this. So does the PCRE optimization unless we disable it
3037with \Y. ---/
3038
3039/(*COMMIT)ABC/
3040    ABCDEFG
3041    ** Failers
3042    DEFGABC\Y
3043
3044/^(ab (c+(*THEN)cd) | xyz)/x
3045    abcccd
3046
3047/^(ab (c+(*PRUNE)cd) | xyz)/x
3048    abcccd
3049
3050/^(ab (c+(*FAIL)cd) | xyz)/x
3051    abcccd
3052
3053/--- Perl gets some of these wrong ---/
3054
3055/(?>.(*ACCEPT))*?5/
3056    abcde
3057
3058/(.(*ACCEPT))*?5/
3059    abcde
3060
3061/(.(*ACCEPT))5/
3062    abcde
3063
3064/(.(*ACCEPT))*5/
3065    abcde
3066
3067/A\NB./BZ
3068    ACBD
3069    *** Failers
3070    A\nB
3071    ACB\n
3072
3073/A\NB./sBZ
3074    ACBD
3075    ACB\n
3076    *** Failers
3077    A\nB
3078
3079/A\NB/<crlf>
3080    A\nB
3081    A\rB
3082    ** Failers
3083    A\r\nB
3084
3085/\R+b/BZ
3086
3087/\R+\n/BZ
3088
3089/\R+\d/BZ
3090
3091/\d*\R/BZ
3092
3093/\s*\R/BZ
3094    \x20\x0a
3095    \x20\x0d
3096    \x20\x0d\x0a
3097
3098/\S*\R/BZ
3099    a\x0a
3100
3101/X\h*\R/BZ
3102    X\x20\x0a
3103
3104/X\H*\R/BZ
3105    X\x0d\x0a
3106
3107/X\H+\R/BZ
3108    X\x0d\x0a
3109
3110/X\H++\R/BZ
3111    X\x0d\x0a
3112
3113/(?<=abc)def/
3114    abc\P\P
3115
3116/abc$/
3117    abc
3118    abc\P
3119    abc\P\P
3120
3121/abc$/m
3122    abc
3123    abc\n
3124    abc\P\P
3125    abc\n\P\P
3126    abc\P
3127    abc\n\P
3128
3129/abc\z/
3130    abc
3131    abc\P
3132    abc\P\P
3133
3134/abc\Z/
3135    abc
3136    abc\P
3137    abc\P\P
3138
3139/abc\b/
3140    abc
3141    abc\P
3142    abc\P\P
3143
3144/abc\B/
3145    abc
3146    abc\P
3147    abc\P\P
3148
3149/.+/
3150    abc\>0
3151    abc\>1
3152    abc\>2
3153    abc\>3
3154    abc\>4
3155    abc\>-4
3156
3157/^\cģ/
3158
3159/(?P<abn>(?P=abn)xxx)/BZ
3160
3161/(a\1z)/BZ
3162
3163/(?P<abn>(?P=abn)(?<badstufxxx)/BZ
3164
3165/(?P<abn>(?P=axn)xxx)/BZ
3166
3167/(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
3168
3169/-- These tests are here because Perl gets the first one wrong. --/
3170
3171/(\R*)(.)/s
3172    \r\n
3173    \r\r\n\n\r
3174    \r\r\n\n\r\n
3175
3176/(\R)*(.)/s
3177    \r\n
3178    \r\r\n\n\r
3179    \r\r\n\n\r\n
3180
3181/((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
3182    \r\n
3183    \r\r\n\n\r
3184    \r\r\n\n\r\n
3185
3186/-- --/
3187
3188/^abc$/BZ
3189
3190/^abc$/BZm
3191
3192/^(a)*+(\w)/S
3193    aaaaX
3194    ** Failers
3195    aaaa
3196
3197/^(?:a)*+(\w)/S
3198    aaaaX
3199    ** Failers
3200    aaaa
3201
3202/(a)++1234/SDZ
3203
3204/([abc])++1234/SI
3205
3206/(?<=(abc)+)X/
3207
3208/(^ab)/I
3209
3210/(^ab)++/I
3211
3212/(^ab|^)+/I
3213
3214/(^ab|^)++/I
3215
3216/(?:^ab)/I
3217
3218/(?:^ab)++/I
3219
3220/(?:^ab|^)+/I
3221
3222/(?:^ab|^)++/I
3223
3224/(.*ab)/I
3225
3226/(.*ab)++/I
3227
3228/(.*ab|.*)+/I
3229
3230/(.*ab|.*)++/I
3231
3232/(?:.*ab)/I
3233
3234/(?:.*ab)++/I
3235
3236/(?:.*ab|.*)+/I
3237
3238/(?:.*ab|.*)++/I
3239
3240/(?=a)[bcd]/I
3241
3242/((?=a))[bcd]/I
3243
3244/((?=a))+[bcd]/I
3245
3246/((?=a))++[bcd]/I
3247
3248/(?=a+)[bcd]/iI
3249
3250/(?=a+?)[bcd]/iI
3251
3252/(?=a++)[bcd]/iI
3253
3254/(?=a{3})[bcd]/iI
3255
3256/(abc)\1+/S
3257
3258/-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
3259
3260/(?1)(?:(b(*ACCEPT))){0}/
3261    b
3262
3263/(?1)(?:(b(*ACCEPT))){0}c/
3264    bc
3265    ** Failers
3266    b
3267
3268/(?1)(?:((*ACCEPT))){0}c/
3269    c
3270    c\N
3271
3272/^.*?(?(?=a)a|b(*THEN)c)/
3273    ba
3274
3275/^.*?(?(?=a)a|bc)/
3276    ba
3277
3278/^.*?(?(?=a)a(*THEN)b|c)/
3279    ac
3280
3281/^.*?(?(?=a)a(*THEN)b)c/
3282    ac
3283
3284/^.*?(a(*THEN)b)c/
3285    aabc
3286
3287/^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
3288    aabc
3289
3290/^.*?(a(*THEN)b|z)c/
3291    aabc
3292
3293/^.*?(z|a(*THEN)b)c/
3294    aabc
3295
3296/-- --/
3297
3298/-- These studied versions are here because they are not Perl-compatible; the
3299    studying means the mark is not seen. --/
3300
3301/(*MARK:A)(*SKIP:B)(C|X)/KS
3302    C
3303    D
3304
3305/(*:A)A+(*SKIP:A)(B|Z)/KS
3306    AAAC
3307
3308/-- --/
3309
3310"(?=a*(*ACCEPT)b)c"
3311    c
3312    c\N
3313
3314/(?1)c(?(DEFINE)((*ACCEPT)b))/
3315    c
3316    c\N
3317
3318/(?>(*ACCEPT)b)c/
3319    c
3320    c\N
3321
3322/(?:(?>(a)))+a%/++
3323    %aa%
3324
3325/(a)b|ac/++SS
3326    ac\O3
3327
3328/(a)(b)x|abc/++
3329     abc\O6
3330
3331/(a)bc|(a)(b)\2/
3332    \O3abc
3333    \O4abc
3334
3335/(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
3336
3337/(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
3338
3339/(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
3340
3341/(abc)(?1)/SI
3342
3343/^(?>a)++/
3344    aa\M
3345    aaaaaaaaa\M
3346
3347/(a)(?1)++/
3348    aa\M
3349    aaaaaaaaa\M
3350
3351/(?:(foo)|(bar)|(baz))X/SS=
3352    bazfooX
3353    foobazbarX
3354    barfooX
3355    bazX
3356    foobarbazX
3357    bazfooX\O0
3358    bazfooX\O2
3359    bazfooX\O4
3360    bazfooX\O6
3361    bazfooX\O8
3362    bazfooX\O10
3363
3364/(?=abc){3}abc/BZ
3365
3366/(?=abc)+abc/BZ
3367
3368/(?=abc)++abc/BZ
3369
3370/(?=abc){0}xyz/BZ
3371
3372/(?=(a))?./BZ
3373
3374/(?=(a))??./BZ
3375
3376/^(?=(a)){0}b(?1)/BZ
3377
3378/(?(DEFINE)(a))?b(?1)/BZ
3379
3380/^(?=(?1))?[az]([abc])d/BZ
3381
3382/^(?!a){0}\w+/BZ
3383
3384/(?<=(abc))?xyz/BZ
3385
3386/[:a[:abc]b:]/BZ
3387
3388/((?2))((?1))/SS
3389    abc
3390
3391/((?(R2)a+|(?1)b))/SS
3392    aaaabcde
3393
3394/(?(R)a*(?1)|((?R))b)/SS
3395    aaaabcde
3396
3397/(a+|(?R)b)/
3398
3399/^(a(*:A)(d|e(*:B))z|aeq)/C
3400    adz
3401    aez
3402    aeqwerty
3403
3404/.(*F)/
3405    \P\Pabc
3406
3407/\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
3408
3409/\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
3410
3411/a(*SKIP)c|b(*ACCEPT)|/+S!I
3412    a
3413
3414/a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
3415    ax
3416
3417'a*(*ACCEPT)b'+
3418    \N\N
3419    abc\N\N
3420    bbb\N\N
3421
3422/(*ACCEPT)a/+I
3423    bax
3424
3425/z(*ACCEPT)a/+I
3426    baxzbx
3427
3428/a(?:.)*?a/ims
3429    \Mabbbbbbbbbbbbbbbbbbbbba
3430
3431/a(?:.(*THEN))*?a/ims
3432    \Mabbbbbbbbbbbbbbbbbbbbba
3433
3434/a(?:.(*THEN:ABC))*?a/ims
3435    \Mabbbbbbbbbbbbbbbbbbbbba
3436
3437/^(?>a+)(?>(z+))\w/BZ
3438    aaaazzzzb
3439    ** Failers
3440    aazz
3441
3442/(.)(\1|a(?2))/
3443    bab
3444
3445/\1|(.)(?R)\1/
3446    cbbbc
3447
3448/(.)((?(1)c|a)|a(?2))/
3449    baa
3450
3451/(?P<abn>(?P=abn)xxx)/BZ
3452
3453/(a\1z)/BZ
3454
3455/^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
3456     \Maabbccddee
3457
3458/^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
3459     \Maabbccddee
3460
3461/^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
3462     \Maabbccddee
3463
3464/^a\x41z/<JS>
3465    aAz
3466    *** Failers
3467    ax41z
3468
3469/^a[m\x41]z/<JS>
3470    aAz
3471
3472/^a\x1z/<JS>
3473    ax1z
3474
3475/^a\u0041z/<JS>
3476    aAz
3477    *** Failers
3478    au0041z
3479
3480/^a[m\u0041]z/<JS>
3481    aAz
3482
3483/^a\u041z/<JS>
3484    au041z
3485    *** Failers
3486    aAz
3487
3488/^a\U0041z/<JS>
3489    aU0041z
3490    *** Failers
3491    aAz
3492
3493/(?(?=c)c|d)++Y/BZ
3494
3495/(?(?=c)c|d)*+Y/BZ
3496
3497/a[\NB]c/
3498    aNc
3499
3500/a[B-\Nc]/
3501
3502/a[B\Nc]/
3503
3504/(a)(?2){0,1999}?(b)/
3505
3506/(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
3507
3508/--- This test, with something more complicated than individual letters, causes
3509different behaviour in Perl. Perhaps it disables some optimization; no tag is
3510passed back for the failures, whereas in PCRE there is a tag. ---/
3511
3512/(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
3513    AABC
3514    XXYZ
3515    ** Failers
3516    XAQQ
3517    XAQQXZZ
3518    AXQQQ
3519    AXXQQQ
3520
3521/-- Perl doesn't give marks for these, though it does if the alternatives are
3522replaced by single letters. --/
3523
3524/(b|q)(*:m)f|a(*:n)w/K
3525    aw
3526    ** Failers
3527    abc
3528
3529/(q|b)(*:m)f|a(*:n)w/K
3530    aw
3531    ** Failers
3532    abc
3533
3534/-- After a partial match, the behaviour is as for a failure. --/
3535
3536/^a(*:X)bcde/K
3537   abc\P
3538
3539/-- These are here because Perl doesn't return a mark, except for the first --/
3540
3541/(?=(*:x))(q|)/K+
3542    abc
3543
3544/(?=(*:x))((*:y)q|)/K+
3545    abc
3546
3547/(?=(*:x))(?:(*:y)q|)/K+
3548    abc
3549
3550/(?=(*:x))(?>(*:y)q|)/K+
3551    abc
3552
3553/(?=a(*:x))(?!a(*:y)c)/K+
3554    ab
3555
3556/(?=a(*:x))(?=a(*:y)c|)/K+
3557    ab
3558
3559/(..)\1/
3560    ab\P
3561    aba\P
3562    abab\P
3563
3564/(..)\1/i
3565    ab\P
3566    abA\P
3567    aBAb\P
3568
3569/(..)\1{2,}/
3570    ab\P
3571    aba\P
3572    abab\P
3573    ababa\P
3574    ababab\P
3575    ababab\P\P
3576    abababa\P
3577    abababa\P\P
3578
3579/(..)\1{2,}/i
3580    ab\P
3581    aBa\P
3582    aBAb\P
3583    AbaBA\P
3584    abABAb\P
3585    aBAbaB\P\P
3586    abABabA\P
3587    abaBABa\P\P
3588
3589/(..)\1{2,}?x/i
3590    ab\P
3591    abA\P
3592    aBAb\P
3593    abaBA\P
3594    abAbaB\P
3595    abaBabA\P
3596    abAbABaBx\P
3597
3598/^(..)\1/
3599    aba\P
3600
3601/^(..)\1{2,3}x/
3602    aba\P
3603    ababa\P
3604    ababa\P\P
3605    abababx
3606    ababababx
3607
3608/^(..)\1{2,3}?x/
3609    aba\P
3610    ababa\P
3611    ababa\P\P
3612    abababx
3613    ababababx
3614
3615/^(..)(\1{2,3})ab/
3616    abababab
3617
3618/^\R/
3619    \r\P
3620    \r\P\P
3621
3622/^\R{2,3}x/
3623    \r\P
3624    \r\P\P
3625    \r\r\P
3626    \r\r\P\P
3627    \r\r\r\P
3628    \r\r\r\P\P
3629    \r\rx
3630    \r\r\rx
3631
3632/^\R{2,3}?x/
3633    \r\P
3634    \r\P\P
3635    \r\r\P
3636    \r\r\P\P
3637    \r\r\r\P
3638    \r\r\r\P\P
3639    \r\rx
3640    \r\r\rx
3641
3642/^\R?x/
3643    \r\P
3644    \r\P\P
3645    x
3646    \rx
3647
3648/^\R+x/
3649    \r\P
3650    \r\P\P
3651    \r\n\P
3652    \r\n\P\P
3653    \rx
3654
3655/^a$/<CRLF>
3656    a\r\P
3657    a\r\P\P
3658
3659/^a$/m<CRLF>
3660    a\r\P
3661    a\r\P\P
3662
3663/^(a$|a\r)/<CRLF>
3664    a\r\P
3665    a\r\P\P
3666
3667/^(a$|a\r)/m<CRLF>
3668    a\r\P
3669    a\r\P\P
3670
3671/./<CRLF>
3672    \r\P
3673    \r\P\P
3674
3675/.{2,3}/<CRLF>
3676    \r\P
3677    \r\P\P
3678    \r\r\P
3679    \r\r\P\P
3680    \r\r\r\P
3681    \r\r\r\P\P
3682
3683/.{2,3}?/<CRLF>
3684    \r\P
3685    \r\P\P
3686    \r\r\P
3687    \r\r\P\P
3688    \r\r\r\P
3689    \r\r\r\P\P
3690
3691"AB(C(D))(E(F))?(?(?=\2)(?=\4))"
3692    ABCDGHI\O03
3693
3694/-- These are all run as real matches in test 1; here we are just checking the
3695settings of the anchored and startline bits. --/
3696
3697/(?>.*?a)(?<=ba)/I
3698
3699/(?:.*?a)(?<=ba)/I
3700
3701/.*?a(*PRUNE)b/I
3702
3703/.*?a(*PRUNE)b/sI
3704
3705/^a(*PRUNE)b/sI
3706
3707/.*?a(*SKIP)b/I
3708
3709/(?>.*?a)b/sI
3710
3711/(?>.*?a)b/I
3712
3713/(?>^a)b/sI
3714
3715/(?>.*?)(?<=(abcd)|(wxyz))/I
3716
3717/(?>.*)(?<=(abcd)|(wxyz))/I
3718
3719"(?>.*)foo"I
3720
3721"(?>.*?)foo"I
3722
3723/(?>^abc)/mI
3724
3725/(?>.*abc)/mI
3726
3727/(?:.*abc)/mI
3728
3729/-- Check PCRE_STUDY_EXTRA_NEEDED --/
3730
3731/.?/S-I
3732
3733/.?/S!I
3734
3735/(?:(a)+(?C1)bb|aa(?C2)b)/
3736    aab\C+
3737
3738/(?:(a)++(?C1)bb|aa(?C2)b)/
3739    aab\C+
3740
3741/(?:(?>(a))(?C1)bb|aa(?C2)b)/
3742    aab\C+
3743
3744/(?:(?1)(?C1)x|ab(?C2))((a)){0}/
3745    aab\C+
3746
3747/(?1)(?C1)((a)(?C2)){0}/
3748    aab\C+
3749
3750/(?:(a)+(?C1)bb|aa(?C2)b)++/
3751    aab\C+
3752    aab\C+\O2
3753
3754/(ab)x|ab/
3755    ab\O3
3756    ab\O2
3757
3758/(ab)/
3759    ab\O3
3760    ab\O2
3761
3762/(?<=123)(*MARK:xx)abc/K
3763    xxxx123a\P\P
3764    xxxx123a\P
3765
3766/123\Kabc/
3767    xxxx123a\P\P
3768    xxxx123a\P
3769
3770/^(?(?=a)aa|bb)/C
3771    bb
3772
3773/(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/
3774    bb
3775
3776/-- Perl seems to have a bug with this one --/
3777
3778/aaaaa(*COMMIT)(*PRUNE)b|a+c/
3779    aaaaaac
3780
3781/-- Here are some that Perl treats differently because of the way it handles
3782backtracking verbs. --/
3783
3784 /(?!a(*COMMIT)b)ac|ad/
3785     ac
3786     ad
3787
3788/^(?!a(*THEN)b|ac)../
3789     ac
3790     ad
3791
3792/^(?=a(*THEN)b|ac)/
3793    ac
3794
3795/\A.*?(?:a|b(*THEN)c)/
3796    ba
3797
3798/\A.*?(?:a|b(*THEN)c)++/
3799    ba
3800
3801/\A.*?(?:a|b(*THEN)c|d)/
3802    ba
3803
3804/(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/
3805    aac
3806
3807/\A.*?(a|b(*THEN)c)/
3808    ba
3809
3810/^(A(*THEN)B|A(*THEN)D)/
3811    AD
3812
3813/(?!b(*THEN)a)bn|bnn/
3814    bnn
3815
3816/(?(?=b(*SKIP)a)bn|bnn)/
3817    bnn
3818
3819/(?=b(*THEN)a|)bn|bnn/
3820    bnn
3821
3822/-------------------------/
3823
3824/(*LIMIT_MATCH=12bc)abc/
3825
3826/(*LIMIT_MATCH=4294967290)abc/
3827
3828/(*LIMIT_RECURSION=4294967280)abc/I
3829
3830/(a+)*zz/
3831    aaaaaaaaaaaaaz
3832    aaaaaaaaaaaaaz\q3000
3833
3834/(a+)*zz/S-
3835    aaaaaaaaaaaaaz\Q10
3836
3837/(*LIMIT_MATCH=3000)(a+)*zz/I
3838    aaaaaaaaaaaaaz
3839    aaaaaaaaaaaaaz\q60000
3840
3841/(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I
3842    aaaaaaaaaaaaaz
3843
3844/(*LIMIT_MATCH=60000)(a+)*zz/I
3845    aaaaaaaaaaaaaz
3846    aaaaaaaaaaaaaz\q3000
3847
3848/(*LIMIT_RECURSION=10)(a+)*zz/IS-
3849    aaaaaaaaaaaaaz
3850    aaaaaaaaaaaaaz\Q1000
3851
3852/(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/IS-
3853    aaaaaaaaaaaaaz
3854
3855/(*LIMIT_RECURSION=1000)(a+)*zz/IS-
3856    aaaaaaaaaaaaaz
3857    aaaaaaaaaaaaaz\Q10
3858
3859/-- This test causes a segfault with Perl 5.18.0 --/
3860
3861/^(?=(a)){0}b(?1)/
3862    backgammon
3863
3864/(?|(?<n>f)|(?<n>b))/JI
3865
3866/(?<a>abc)(?<a>z)\k<a>()/JDZS
3867
3868/a*[bcd]/BZ
3869
3870/[bcd]*a/BZ
3871
3872/-- A complete set of tests for auto-possessification of character types --/
3873
3874/\D+\D \D+\d \D+\S \D+\s \D+\W \D+\w \D+. \D+\C \D+\R \D+\H \D+\h \D+\V \D+\v \D+\Z \D+\z \D+$/BZx
3875
3876/\d+\D \d+\d \d+\S \d+\s \d+\W \d+\w \d+. \d+\C \d+\R \d+\H \d+\h \d+\V \d+\v \d+\Z \d+\z \d+$/BZx
3877
3878/\S+\D \S+\d \S+\S \S+\s \S+\W \S+\w \S+. \S+\C \S+\R \S+\H \S+\h \S+\V \S+\v \S+\Z \S+\z \S+$/BZx
3879
3880/\s+\D \s+\d \s+\S \s+\s \s+\W \s+\w \s+. \s+\C \s+\R \s+\H \s+\h \s+\V \s+\v \s+\Z \s+\z \s+$/BZx
3881
3882/\W+\D \W+\d \W+\S \W+\s \W+\W \W+\w \W+. \W+\C \W+\R \W+\H \W+\h \W+\V \W+\v \W+\Z \W+\z \W+$/BZx
3883
3884/\w+\D \w+\d \w+\S \w+\s \w+\W \w+\w \w+. \w+\C \w+\R \w+\H \w+\h \w+\V \w+\v \w+\Z \w+\z \w+$/BZx
3885
3886/\C+\D \C+\d \C+\S \C+\s \C+\W \C+\w \C+. \C+\C \C+\R \C+\H \C+\h \C+\V \C+\v \C+\Z \C+\z \C+$/BZx
3887
3888/\R+\D \R+\d \R+\S \R+\s \R+\W \R+\w \R+. \R+\C \R+\R \R+\H \R+\h \R+\V \R+\v \R+\Z \R+\z \R+$/BZx
3889
3890/\H+\D \H+\d \H+\S \H+\s \H+\W \H+\w \H+. \H+\C \H+\R \H+\H \H+\h \H+\V \H+\v \H+\Z \H+\z \H+$/BZx
3891
3892/\h+\D \h+\d \h+\S \h+\s \h+\W \h+\w \h+. \h+\C \h+\R \h+\H \h+\h \h+\V \h+\v \h+\Z \h+\z \h+$/BZx
3893
3894/\V+\D \V+\d \V+\S \V+\s \V+\W \V+\w \V+. \V+\C \V+\R \V+\H \V+\h \V+\V \V+\v \V+\Z \V+\z \V+$/BZx
3895
3896/\v+\D \v+\d \v+\S \v+\s \v+\W \v+\w \v+. \v+\C \v+\R \v+\H \v+\h \v+\V \v+\v \v+\Z \v+\z \v+$/BZx
3897
3898/ a+\D  a+\d  a+\S  a+\s  a+\W  a+\w  a+.  a+\C  a+\R  a+\H  a+\h  a+\V  a+\v  a+\Z  a+\z  a+$/BZx
3899
3900/\n+\D \n+\d \n+\S \n+\s \n+\W \n+\w \n+. \n+\C \n+\R \n+\H \n+\h \n+\V \n+\v \n+\Z \n+\z \n+$/BZx
3901
3902/ .+\D  .+\d  .+\S  .+\s  .+\W  .+\w  .+.  .+\C  .+\R  .+\H  .+\h  .+\V  .+\v  .+\Z  .+\z  .+$/BZx
3903
3904/ .+\D  .+\d  .+\S  .+\s  .+\W  .+\w  .+.  .+\C  .+\R  .+\H  .+\h  .+\V  .+\v  .+\Z  .+\z  .+$/BZxs
3905
3906/\D+$  \d+$  \S+$  \s+$  \W+$  \w+$  \C+$  \R+$  \H+$  \h+$  \V+$  \v+$   a+$  \n+$   .+$  .+$/BZxm
3907
3908/(?=a+)a(a+)++a/BZ
3909
3910/a+(bb|cc)a+(?:bb|cc)a+(?>bb|cc)a+(?:bb|cc)+a+(aa)a+(?:bb|aa)/BZ
3911
3912/a+(bb|cc)?#a+(?:bb|cc)??#a+(?:bb|cc)?+#a+(?:bb|cc)*#a+(bb|cc)?a#a+(?:aa)?/BZ
3913
3914/a+(?:bb)?a#a+(?:|||)#a+(?:|b)a#a+(?:|||)?a/BZ
3915
3916/[ab]*/BZ
3917    aaaa
3918
3919/[ab]*?/BZ
3920    aaaa
3921
3922/[ab]?/BZ
3923    aaaa
3924
3925/[ab]??/BZ
3926    aaaa
3927
3928/[ab]+/BZ
3929    aaaa
3930
3931/[ab]+?/BZ
3932    aaaa
3933
3934/[ab]{2,3}/BZ
3935    aaaa
3936
3937/[ab]{2,3}?/BZ
3938    aaaa
3939
3940/[ab]{2,}/BZ
3941    aaaa
3942
3943/[ab]{2,}?/BZ
3944    aaaa
3945
3946/\d+\s{0,5}=\s*\S?=\w{0,4}\W*/BZ
3947
3948/[a-d]{5,12}[e-z0-9]*#[^a-z]+[b-y]*a[2-7]?[^0-9a-z]+/BZ
3949
3950/[a-z]*\s#[ \t]?\S#[a-c]*\S#[C-G]+?\d#[4-8]*\D#[4-9,]*\D#[!$]{0,5}\w#[M-Xf-l]+\W#[a-c,]?\W/BZ
3951
3952/a+(aa|bb)*c#a*(bb|cc)*a#a?(bb|cc)*d#[a-f]*(g|hh)*f/BZ
3953
3954/[a-f]*(g|hh|i)*i#[a-x]{4,}(y{0,6})*y#[a-k]+(ll|mm)+n/BZ
3955
3956/[a-f]*(?>gg|hh)+#[a-f]*(?>gg|hh)?#[a-f]*(?>gg|hh)*a#[a-f]*(?>gg|hh)*h/BZ
3957
3958/[a-c]*d/DZS
3959
3960/[a-c]+d/DZS
3961
3962/[a-c]?d/DZS
3963
3964/[a-c]{4,6}d/DZS
3965
3966/[a-c]{0,6}d/DZS
3967
3968/-- End of special auto-possessive tests --/
3969
3970/^A\o{1239}B/
3971    A\123B
3972
3973/^A\oB/
3974
3975/^A\x{zz}B/
3976
3977/^A\x{12Z/
3978
3979/^A\x{/
3980
3981/[ab]++/BZO
3982
3983/[^ab]*+/BZO
3984
3985/a{4}+/BZO
3986
3987/a{4}+/BZOi
3988
3989/[a-[:digit:]]+/
3990
3991/[A-[:digit:]]+/
3992
3993/[a-[.xxx.]]+/
3994
3995/[a-[=xxx=]]+/
3996
3997/[a-[!xxx!]]+/
3998
3999/[A-[!xxx!]]+/
4000    A]]]
4001
4002/[a-\d]+/
4003
4004/(?<0abc>xx)/
4005
4006/(?&1abc)xx(?<1abc>y)/
4007
4008/(?<ab-cd>xx)/
4009
4010/(?'0abc'xx)/
4011
4012/(?P<0abc>xx)/
4013
4014/\k<5ghj>/
4015
4016/\k'5ghj'/
4017
4018/\k{2fgh}/
4019
4020/(?P=8yuki)/
4021
4022/\g{4df}/
4023
4024/(?&1abc)xx(?<1abc>y)/
4025
4026/(?P>1abc)xx(?<1abc>y)/
4027
4028/\g'3gh'/
4029
4030/\g<5fg>/
4031
4032/(?(<4gh>)abc)/
4033
4034/(?('4gh')abc)/
4035
4036/(?(4gh)abc)/
4037
4038/(?(R&6yh)abc)/
4039
4040/(((a\2)|(a*)\g<-1>))*a?/BZ
4041
4042/-- Test the ugly "start or end of word" compatibility syntax --/
4043
4044/[[:<:]]red[[:>:]]/BZ
4045    little red riding hood
4046    a /red/ thing
4047    red is a colour
4048    put it all on red
4049    ** Failers
4050    no reduction
4051    Alfred Winifred
4052
4053/[a[:<:]] should give error/
4054
4055/(?=ab\K)/+
4056    abcd
4057
4058/abcd/f<lf>
4059    xx\nxabcd
4060
4061/ -- Test stack check external calls --/
4062
4063/(((((a)))))/Q0
4064
4065/(((((a)))))/Q1
4066
4067/(((((a)))))/Q
4068
4069/^\w+(?>\s*)(?<=\w)/BZ
4070
4071/\othing/
4072
4073/\o{}/
4074
4075/\o{whatever}/
4076
4077/\xthing/
4078
4079/\x{}/
4080
4081/\x{whatever}/
4082
4083"((?=(?(?=(?(?=(?(?=()))))))))"
4084    a
4085
4086"(?(?=)==)(((((((((?=)))))))))"
4087    a
4088
4089/^(?:(a)|b)(?(1)A|B)/I
4090    aA123\O3
4091    aA123\O6
4092
4093'^(?:(?<AA>a)|b)(?(<AA>)A|B)'
4094    aA123\O3
4095    aA123\O6
4096
4097'^(?<AA>)(?:(?<AA>a)|b)(?(<AA>)A|B)'J
4098    aA123\O3
4099    aA123\O6
4100
4101'^(?:(?<AA>X)|)(?:(?<AA>a)|b)\k{AA}'J
4102    aa123\O3
4103    aa123\O6
4104
4105/(?<N111>(?J)(?<N111>1(111111)11|)1|1|)(?(<N111>)1)/
4106
4107/(?(?=0)?)+/
4108
4109/(?(?=0)(?=00)?00765)/
4110     00765
4111
4112/(?(?=0)(?=00)?00765|(?!3).56)/
4113     00765
4114     456
4115     ** Failers
4116     356
4117
4118'^(a)*+(\w)'
4119    g
4120    g\O3
4121
4122'^(?:a)*+(\w)'
4123    g
4124    g\O3
4125
4126//C
4127    \O\C+
4128
4129"((?2){0,1999}())?"
4130
4131/((?+1)(\1))/BZ
4132
4133/(?(?!)a|b)/
4134    bbb
4135    aaa
4136
4137"((?2)+)((?1))"
4138
4139"(?(?<E>.*!.*)?)"
4140
4141"X((?2)()*+){2}+"BZ
4142
4143"X((?2)()*+){2}"BZ
4144
4145"(?<=((?2))((?1)))"
4146
4147/(?<=\Ka)/g+
4148    aaaaa
4149
4150/(?<=\Ka)/G+
4151    aaaaa
4152
4153/((?2){73}(?2))((?1))/
4154
4155/.((?2)(?R)\1)()/BZ
4156
4157/(?1)()((((((\1++))\x85)+)|))/
4158
4159/(\9*+(?2);\3++()2|)++{/
4160
4161/\V\x85\9*+((?2)\3++()2)*:2/
4162
4163/(((?(R)){0,2}) (?''((?'R')((?'R')))))/J
4164
4165/(((?(X)){0,2}) (?''((?'X')((?'X')))))/J
4166
4167/(((?(R)){0,2}) (?''((?'X')((?'R')))))/
4168
4169"(?J)(?'d'(?'d'\g{d}))"
4170
4171".*?\h.+.\.+\R*?\xd(?i)(?=!(?=b`b`b`\`b\xa9b!)`\a`bbbbbbbbbbbbb`bbbbbbbbbbbb*R\x85bbbbbbb\C?{((?2)(?))((
4172\H){8(?<=(?1){29}\xa8bbbb\x16\xd\xc6^($(?<! )(\xa9H4){4}h}1)B))\x15')"
4173
4174"(?J:(?|(?'R')(\k'R')|((?'R'))))"
4175
4176/(?<=|(\,\$(?73591620449005828816)\xa8.{7}){6}\x09)/
4177
4178//
4179\O1
4180
4181/^(?:(?(1)x|)+)+$()/BZ
4182
4183/(?=di(?<=(?1))|(?=(.))))/
4184
4185/(?(R))*+/BZ
4186
4187/[[:\\](?'abc')[a:]/
4188
4189"[[[.\xe8Nq\xffq\xff\xe0\x2|||::Nq\xffq\xff\xe0\x6\x2|||::[[[:[::::::[[[[[::::::::[:[[[:[:::[[[[[[[[[[[[:::::::::::::::::[[.\xe8Nq\xffq\xff\xe0\x2|||::Nq\xffq\xff\xe0\x6\x2|||::[[[:[::::::[[[[[::::::::[:[[[:[:::[[[[[[[[[[[[[[:::E[[[:[:[[:[:::[[:::E[[[:[:[[:'[:::::E[[[:[::::::[[[:[[[[[[[::E[[[:[::::::[[[:[[[[[[[[:[[::[::::[[:::::::[[:[[[[[[[:[[::[:[[:[~"
4190
4191/()(?(R)0)*+/BZ
4192
4193/(?R-:(?</
4194
4195/(?1){3918}(((((0(\k'R'))))(?J)(?'R'(?'R'\3){99})))/I
4196
4197/(?J:(?|(:(?|(?'R')(\k'R')|((?'R')))H'Rk'Rf)|s(?'R')))/
4198
4199/0(?0)|(1)(*THEN)(*SKIP:0)(*FAIL)/
4200    01
4201
4202/((?(R8000000000)))/
4203
4204/(?(8000000000/
4205
4206/(?:ab)?(?:ab)(?:ab)/
4207    abab
4208    ababab
4209    aba
4210
4211/((*MARK:A))++a(*SKIP:B)b/
4212    aacb
4213
4214/(?J:(?|(:(?|(?'R')(\z(?|(?'R')(\k'R')|((?'R')))k'R')|((?'R')))H'Ak'Rf)|s(?'R')))/
4215
4216/(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?<a>1)/
4217
4218/a[[:punct:]b]/BZ
4219
4220/-- End of testinput2 --/
4221