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