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