/[pcre]/code/trunk/testdata/testinput2
ViewVC logotype

Diff of /code/trunk/testdata/testinput2

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 49 by nigel, Sat Feb 24 21:39:33 2007 UTC revision 1022 by ph10, Tue Aug 28 12:28:15 2012 UTC
# Line 1  Line 1 
1  /(a)b|/  /-- 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/  /abc/I
14      abc      abc
15      defabc      defabc
16      \Aabc      \Aabc
# Line 8  Line 18 
18      \Adefabc      \Adefabc
19      ABC      ABC
20    
21  /^abc/  /^abc/I
22      abc      abc
23      \Aabc      \Aabc
24      *** Failers      *** Failers
25      defabc      defabc
26      \Adefabc      \Adefabc
27    
28  /a+bc/  /a+bc/I
29    
30  /a*bc/  /a*bc/I
31    
32  /a{3}bc/  /a{3}bc/I
33    
34  /(abc|a+z)/  /(abc|a+z)/I
35    
36  /^abc$/  /^abc$/I
37      abc      abc
38      *** Failers      *** Failers
39      def\nabc      def\nabc
40    
41  /ab\gdef/X  /ab\idef/X
42    
43  /(?X)ab\gdef/X  /(?X)ab\idef/X
44    
45  /x{5,4}/  /x{5,4}/
46    
# Line 38  Line 48 
48    
49  /[abcd/  /[abcd/
50    
51  /[\B]/  /(?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]/  /[z-a]/
64    
# Line 50  Line 70 
70    
71  /(?z)abc/  /(?z)abc/
72    
73  /.*b/  /.*b/I
74    
75  /.*?b/  /.*?b/I
76    
77  /cat|dog|elephant/  /cat|dog|elephant/I
78      this sentence eventually mentions a cat      this sentence eventually mentions a cat
79      this sentences rambles on and on for a while and then reaches elephant      this sentences rambles on and on for a while and then reaches elephant
80    
81  /cat|dog|elephant/S  /cat|dog|elephant/IS
82      this sentence eventually mentions a cat      this sentence eventually mentions a cat
83      this sentences rambles on and on for a while and then reaches elephant      this sentences rambles on and on for a while and then reaches elephant
84    
85  /cat|dog|elephant/iS  /cat|dog|elephant/IiS
86      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
87      this sentences rambles on and on for a while to elephant ElePhant      this sentences rambles on and on for a while to elephant ElePhant
88    
89  /a|[bcd]/S  /a|[bcd]/IS
90    
91  /(a|[^\dZ])/S  /(a|[^\dZ])/IS
92    
93  /(a|b)*[\s]/S  /(a|b)*[\s]/IS
94    
95  /(ab\2)/  /(ab\2)/
96    
97  /{4,5}abc/  /{4,5}abc/
98    
99  /(a)(b)(c)\2/  /(a)(b)(c)\2/I
100      abcb      abcb
101      \O0abcb      \O0abcb
102      \O3abcb      \O3abcb
103      \O6abcb      \O6abcb
104      \O9abcb      \O9abcb
105      \O12abcb      \O12abcb
106    
107  /(a)bc|(a)(b)\2/  /(a)bc|(a)(b)\2/I
108      abc      abc
109      \O0abc      \O0abc
110      \O3abc      \O3abc
# Line 96  Line 116 
116      \O9aba      \O9aba
117      \O12aba      \O12aba
118    
119  /abc$/E  /abc$/IE
120      abc      abc
121      *** Failers      *** Failers
122      abc\n      abc\n
# Line 104  Line 124 
124    
125  /(a)(b)(c)(d)(e)\6/  /(a)(b)(c)(d)(e)\6/
126    
127  /the quick brown fox/  /the quick brown fox/I
128      the quick brown fox      the quick brown fox
129      this is a line with the quick brown fox      this is a line with the quick brown fox
130    
131  /the quick brown fox/A  /the quick brown fox/IA
132      the quick brown fox      the quick brown fox
133      *** Failers      *** Failers
134      this is a line with the quick brown fox      this is a line with the quick brown fox
135    
136  /ab(?z)cd/  /ab(?z)cd/
137    
138  /^abc|def/  /^abc|def/I
     abcdef  
     abcdef\B  
   
 /.*((abc)$|(def))/  
     defabc  
     \Zdefabc  
   
 /abc/P  
     abc  
     *** Failers  
   
 /^abc|def/P  
139      abcdef      abcdef
140      abcdef\B      abcdef\B
141    
142  /.*((abc)$|(def))/P  /.*((abc)$|(def))/I
143      defabc      defabc
144      \Zdefabc      \Zdefabc
   
 /the quick brown fox/P  
     the quick brown fox  
     *** Failers  
     The Quick Brown Fox  
   
 /the quick brown fox/Pi  
     the quick brown fox  
     The Quick Brown Fox  
   
 /abc.def/P  
     *** Failers  
     abc\ndef  
   
 /abc$/P  
     abc  
     abc\n  
   
 /(abc)\2/P  
   
 /(abc\1)/P  
     abc  
145    
146  /)/  /)/
147    
148  /a[]b/  /a[]b/
149    
150  /[^aeiou ]{3,}/  /[^aeiou ]{3,}/I
151      co-processors, and for      co-processors, and for
152    
153  /<.*>/  /<.*>/I
154      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
155    
156  /<.*?>/  /<.*?>/I
157      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
158    
159  /<.*>/U  /<.*>/IU
160      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
161    
162  /<.*>(?U)/  /(?U)<.*>/I
163      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
164    
165  /<.*?>/U  /<.*?>/IU
166      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
167    
168  /={3,}/U  /={3,}/IU
169      abc========def      abc========def
170    
171  /(?U)={3,}?/  /(?U)={3,}?/I
172      abc========def      abc========def
173    
174  /(?<!bar|cattle)foo/  /(?<!bar|cattle)foo/I
175      foo      foo
176      catfoo      catfoo
177      *** Failers      *** Failers
178      the barfoo      the barfoo
179      and cattlefoo      and cattlefoo
180    
181  /(?<=a+)b/  /(?<=a+)b/
182    
# Line 198  Line 184 
184    
185  /(?<!(foo)a\1)bar/  /(?<!(foo)a\1)bar/
186    
187  /(?i)abc/  /(?i)abc/I
188    
189  /(a|(?m)a)/  /(a|(?m)a)/I
190    
191  /(?i)^1234/  /(?i)^1234/I
192    
193  /(^b|(?i)^d)/  /(^b|(?i)^d)/I
194    
195  /(?s).*/  /(?s).*/I
196    
197  /[abcd]/S  /[abcd]/IS
198    
199  /(?i)[abcd]/S  /(?i)[abcd]/IS
200    
201  /(?m)[xy]|(b|c)/S  /(?m)[xy]|(b|c)/IS
202    
203  /(^a|^b)/m  /(^a|^b)/Im
204    
205  /(?i)(^a|^b)/m  /(?i)(^a|^b)/Im
206    
207  /(a)(?(1)a|b|c)/  /(a)(?(1)a|b|c)/
208    
# Line 224  Line 210 
210    
211  /(?(1a)/  /(?(1a)/
212    
213    /(?(1a))/
214    
215  /(?(?i))/  /(?(?i))/
216    
217  /(?(abc))/  /(?(abc))/
218    
219  /(?(?<ab))/  /(?(?<ab))/
220    
221  /((?s)blah)\s+\1/  /((?s)blah)\s+\1/I
222    
223  /((?i)blah)\s+\1/  /((?i)blah)\s+\1/I
224    
225  /((?i)b)/DS  /((?i)b)/IDZS
226    
227  /(a*b|(?i:c*(?-i)d))/S  /(a*b|(?i:c*(?-i)d))/IS
228    
229  /a$/  /a$/I
230      a      a
231      a\n      a\n
232      *** Failers      *** Failers
233      \Za      \Za
234      \Za\n      \Za\n
235    
236  /a$/m  /a$/Im
237      a      a
238      a\n      a\n
239      \Za\n      \Za\n
240      *** Failers      *** Failers
241      \Za      \Za
   
 /\Aabc/m  
242    
243  /^abc/m  /\Aabc/Im
244    
245    /^abc/Im
246    
247  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
248    aaaaabbbbbcccccdef    aaaaabbbbbcccccdef
249    
250  /(?<=foo)[ab]/S  /(?<=foo)[ab]/IS
251    
252  /(?<!foo)(alpha|omega)/S  /(?<!foo)(alpha|omega)/IS
253    
254  /(?!alphabet)[ab]/S  /(?!alphabet)[ab]/IS
255    
256  /(?<=foo\n)^bar/m  /(?<=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)/m  /(?>^abc)/Im
271      abc      abc
272      def\nabc      def\nabc
273      *** Failers      *** Failers
274      defabc      defabc
275    
276  /(?<=ab(c+)d)ef/  /(?<=ab(c+)d)ef/
277    
# Line 281  Line 281 
281    
282  /The next three are in testinput2 because they have variable length branches/  /The next three are in testinput2 because they have variable length branches/
283    
284  /(?<=bullock|donkey)-cart/  /(?<=bullock|donkey)-cart/I
285      the bullock-cart      the bullock-cart
286      a donkey-cart race      a donkey-cart race
287      *** Failers      *** Failers
288      cart      cart
289      horse-and-cart      horse-and-cart
   
 /(?<=ab(?i)x|y|z)/  
290    
291  /(?>.*)(?<=(abcd)|(xyz))/  /(?<=ab(?i)x|y|z)/I
292    
293    /(?>.*)(?<=(abcd)|(xyz))/I
294      alphabetabcd      alphabetabcd
295      endingxyz      endingxyz
296    
297  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
298      abxyZZ      abxyZZ
299      abXyZZ      abXyZZ
300      ZZZ      ZZZ
301      zZZ      zZZ
302      bZZ      bZZ
303      BZZ      BZZ
304      *** Failers      *** Failers
305      ZZ      ZZ
306      abXYZZ      abXYZZ
307      zzz      zzz
308      bzz      bzz
309    
310  /(?<!(foo)a)bar/  /(?<!(foo)a)bar/I
311      bar      bar
312      foobbar      foobbar
313      *** Failers      *** Failers
314      fooabar      fooabar
315    
316  /This one is here because Perl 5.005_02 doesn't fail it/  /This one is here because Perl 5.005_02 doesn't fail it/I
317    
318  /^(a)?(?(1)a|b)+$/  /^(a)?(?(1)a|b)+$/I
319      *** Failers      *** Failers
320      a      a
321    
322  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/  /This one is here because Perl behaves differently; see also the following/I
323    
324  /^(a\1?){4}$/  /^(a\1?){4}$/I
325        aaaa
326      aaaaaa      aaaaaa
327    
328  /These are syntax tests from Perl 5.005/  /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]/  /a[b-a]/
345    
# Line 350  Line 365 
365    
366  /(a)|\2/  /(a)|\2/
367    
368  /a[b-a]/i  /a[b-a]/Ii
369    
370  /a[]b/i  /a[]b/Ii
371    
372  /a[/i  /a[/Ii
373    
374  /*a/i  /*a/Ii
375    
376  /(*)b/i  /(*)b/Ii
377    
378  /abc)/i  /abc)/Ii
379    
380  /(abc/i  /(abc/Ii
381    
382  /a**/i  /a**/Ii
383    
384  /)(/i  /)(/Ii
385    
386  /:(?:/  /:(?:/
387    
# Line 384  Line 399 
399    
400  /(?(1?)a|b)/  /(?(1?)a|b)/
401    
 /(?(1)a|b|c)/  
   
402  /[a[:xyz:/  /[a[:xyz:/
403    
404  /(?<=x+)y/  /(?<=x+)y/
# Line 394  Line 407 
407    
408  /abc/\  /abc/\
409    
 /abc/\P  
   
410  /abc/\i  /abc/\i
411    
412  /(a)bc(d)/  /(a)bc(d)/I
413      abcd      abcd
414      abcd\C2      abcd\C2
415      abcd\C5      abcd\C5
416    
417  /(.{20})/  /(.{20})/I
418      abcdefghijklmnopqrstuvwxyz      abcdefghijklmnopqrstuvwxyz
419      abcdefghijklmnopqrstuvwxyz\C1      abcdefghijklmnopqrstuvwxyz\C1
420      abcdefghijklmnopqrstuvwxyz\G1      abcdefghijklmnopqrstuvwxyz\G1
421    
422  /(.{15})/  /(.{15})/I
423      abcdefghijklmnopqrstuvwxyz      abcdefghijklmnopqrstuvwxyz
424      abcdefghijklmnopqrstuvwxyz\C1\G1      abcdefghijklmnopqrstuvwxyz\C1\G1
425    
426  /(.{16})/  /(.{16})/I
427      abcdefghijklmnopqrstuvwxyz      abcdefghijklmnopqrstuvwxyz
428      abcdefghijklmnopqrstuvwxyz\C1\G1\L      abcdefghijklmnopqrstuvwxyz\C1\G1\L
   
 /^(a|(bc))de(f)/  
     adef\G1\G2\G3\G4\L  
     bcdef\G1\G2\G3\G4\L  
     adefghijk\C0  
   
 /^abc\00def/  
     abc\00def\L\C0  
   
 /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  
 )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  
 )?)?)?)?)?)?)?)?)?otherword/M  
429    
430  /.*X/D  /^(a|(bc))de(f)/I
431        adef\G1\G2\G3\G4\L
432        bcdef\G1\G2\G3\G4\L
433        adefghijk\C0
434    
435  /.*X/Ds  /^abc\00def/I
436        abc\00def\L\C0
437    
438  /(.*X|^B)/D  /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|^B)/Ds  /.*X/IDZ
   
 /(?s)(.*X|^B)/D  
443    
444  /(?s:.*X|^B)/D  /.*X/IDZs
445    
446  /\Biss\B/+  /(.*X|^B)/IDZ
     Mississippi  
447    
448  /\Biss\B/+P  /(.*X|^B)/IDZs
449    
450    /(?s)(.*X|^B)/IDZ
451    
452    /(?s:.*X|^B)/IDZ
453    
454    /\Biss\B/I+
455      Mississippi      Mississippi
456    
457  /iss/G+  /iss/IG+
458      Mississippi      Mississippi
459    
460  /\Biss\B/G+  /\Biss\B/IG+
461      Mississippi      Mississippi
462    
463  /\Biss\B/g+  /\Biss\B/Ig+
464      Mississippi      Mississippi
465      *** Failers      *** Failers
466      Mississippi\A      Mississippi\A
467    
468  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
469      Mississippi      Mississippi
470    
471  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
472      Mississippi      Mississippi
473    
474  /^iss/g+  /^iss/Ig+
475      ississippi      ississippi
   
 /.*iss/g+  
     abciss\nxyzisspqr  
476    
477  /.i./+g  /.*iss/Ig+
478        abciss\nxyzisspqr
479    
480    /.i./I+g
481      Mississippi      Mississippi
482      Mississippi\A      Mississippi\A
483      Missouri river      Missouri river
484      Missouri river\A      Missouri river\A
485    
486  /^.is/+g  /^.is/I+g
487      Mississippi      Mississippi
488    
489  /^ab\n/g+  /^ab\n/Ig+
490      ab\nab\ncd      ab\nab\ncd
491    
492  /^ab\n/mg+  /^ab\n/Img+
493      ab\nab\ncd      ab\nab\ncd
494    
495  /abc/  /abc/I
496    
497  /abc|bac/  /abc|bac/I
498    
499  /(abc|bac)/  /(abc|bac)/I
500    
501  /(abc|(c|dc))/  /(abc|(c|dc))/I
502    
503  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
504    
505  /a*/  /a*/I
506    
507  /a+/  /a+/I
508    
509  /(baa|a+)/  /(baa|a+)/I
510    
511  /a{0,3}/  /a{0,3}/I
512    
513  /baa{3,}/  /baa{3,}/I
514    
515  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
516    
517  /(abc|ab[cd])/  /(abc|ab[cd])/I
518    
519  /(a|.)/  /(a|.)/I
520    
521  /a|ba|\w/  /a|ba|\w/I
522    
523  /abc(?=pqr)/  /abc(?=pqr)/I
524    
525  /...(?<=abc)/  /...(?<=abc)/I
526    
527  /abc(?!pqr)/  /abc(?!pqr)/I
528    
529  /ab./  /ab./I
530    
531  /ab[xyz]/  /ab[xyz]/I
532    
533  /abc*/  /abc*/I
534    
535  /ab.c*/  /ab.c*/I
536    
537  /a.c*/  /a.c*/I
538    
539  /.c*/  /.c*/I
540    
541  /ac*/  /ac*/I
542    
543  /(a.c*|b.c*)/  /(a.c*|b.c*)/I
544    
545  /a.c*|aba/  /a.c*|aba/I
546    
547  /.+a/  /.+a/I
548    
549  /(?=abcda)a.*/  /(?=abcda)a.*/I
550    
551  /(?=a)a.*/  /(?=a)a.*/I
552    
553  /a(b)*/  /a(b)*/I
554    
555  /a\d*/  /a\d*/I
556    
557  /ab\d*/  /ab\d*/I
558    
559  /a(\d)*/  /a(\d)*/I
560    
561  /abcde{0,0}/  /abcde{0,0}/I
562    
563  /ab\d+/  /ab\d+/I
564    
565  /a(?(1)b)/  /a(?(1)b)(.)/I
566    
567  /a(?(1)bag|big)/  /a(?(1)bag|big)(.)/I
568    
569  /a(?(1)bag|big)*/  /a(?(1)bag|big)*(.)/I
570    
571  /a(?(1)bag|big)+/  /a(?(1)bag|big)+(.)/I
572    
573  /a(?(1)b..|b..)/  /a(?(1)b..|b..)(.)/I
574    
575  /ab\d{0}e/  /ab\d{0}e/I
576    
577  /a?b?/  /a?b?/I
578      a      a
579      b      b
580      ab      ab
581      \      \
582      *** Failers      *** Failers
583      \N      \N
584    
585  /|-/  /|-/I
586      abcd      abcd
587      -abc      -abc
588      \Nab-c      \Nab-c
589      *** Failers      *** Failers
590      \Nabc      \Nabc
591    
592  /a*(b+)(z)(z)/P  /^.?abcd/IS
     aaaabbbbzzzz  
     aaaabbbbzzzz\O0  
     aaaabbbbzzzz\O1  
     aaaabbbbzzzz\O2  
     aaaabbbbzzzz\O3  
     aaaabbbbzzzz\O4  
     aaaabbbbzzzz\O5  
   
 /^.?abcd/S  
593    
594  /\(             # ( at start  /\(             # ( at start
595    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 599  Line 598 
598    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
599    )*            # Zero or more contents    )*            # Zero or more contents
600    \)            # Closing )    \)            # Closing )
601    /x    /Ix
602      (abcd)      (abcd)
603      (abcd)xyz      (abcd)xyz
604      xyz(abcd)      xyz(abcd)
605      (ab(xy)cd)pqr      (ab(xy)cd)pqr
606      (ab(xycd)pqr      (ab(xycd)pqr
607      () abc ()      () abc ()
608      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
609      *** Failers      *** Failers
610      abcd      abcd
611      abcd)      abcd)
612      (abcd      (abcd
613    
614  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
615      (ab(xy)cd)pqr      (ab(xy)cd)pqr
616      1(abcd)(x(y)z)pqr      1(abcd)(x(y)z)pqr
617    
618  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
619      (abcd)      (abcd)
620      (ab(xy)cd)      (ab(xy)cd)
621      (a(b(c)d)e)      (a(b(c)d)e)
622      ((ab))      ((ab))
623      *** Failers      *** Failers
624      ()      ()
625    
626  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
627      ()      ()
628      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
629    
630  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
631      (ab(xy)cd)      (ab(xy)cd)
632    
633  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
634      (ab(xy)cd)      (ab(xy)cd)
635    
636  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
637      (ab(xy)cd)      (ab(xy)cd)
638      (123ab(xy)cd)      (123ab(xy)cd)
639    
640  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
641      (ab(xy)cd)      (ab(xy)cd)
642      (123ab(xy)cd)      (123ab(xy)cd)
643    
644  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
645      (ab(xy)cd)      (ab(xy)cd)
646    
647  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
648      (abcd(xyz<p>qrs)123)      (abcd(xyz<p>qrs)123)
649    
650  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
651      (ab(cd)ef)      (ab(cd)ef)
652      (ab(cd(ef)gh)ij)      (ab(cd(ef)gh)ij)
653    
654  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
655    
656    /^[[:^alnum:]]/DZ
657    
658    /^[[:alpha:]]/DZ
659    
660    /^[[:^alpha:]]/DZ
661    
662    /[_[:alpha:]]/IS
663    
664    /^[[:ascii:]]/DZ
665    
666  /^[[:alpha:]]/D  /^[[:^ascii:]]/DZ
   
 /^[[:ascii:]]/D  
667    
668  /^[[:cntrl:]]/D  /^[[:blank:]]/DZ
669    
670  /^[[:digit:]]/D  /^[[:^blank:]]/DZ
671    
672  /^[[:graph:]]/D  /[\n\x0b\x0c\x0d[:blank:]]/IS
673    
674  /^[[:lower:]]/D  /^[[:cntrl:]]/DZ
675    
676  /^[[:print:]]/D  /^[[:digit:]]/DZ
677    
678  /^[[:punct:]]/D  /^[[:graph:]]/DZ
679    
680  /^[[:space:]]/D  /^[[:lower:]]/DZ
681    
682  /^[[:upper:]]/D  /^[[:print:]]/DZ
683    
684  /^[[:xdigit:]]/D  /^[[:punct:]]/DZ
685    
686  /^[[:word:]]/D  /^[[:space:]]/DZ
687    
688  /^[[:^cntrl:]]/D  /^[[:upper:]]/DZ
689    
690  /^[12[:^digit:]]/D  /^[[:xdigit:]]/DZ
691    
692  /[01[:alpha:]%]/D  /^[[:word:]]/DZ
693    
694  /[[.ch.]]/  /^[[:^cntrl:]]/DZ
695    
696  /[[=ch=]]/  /^[12[:^digit:]]/DZ
697    
698  /[[:rhubarb:]]/  /^[[:^blank:]]/DZ
699    
700  /[[:upper:]]/i  /[01[:alpha:]%]/DZ
701    
702    /[[.ch.]]/I
703    
704    /[[=ch=]]/I
705    
706    /[[:rhubarb:]]/I
707    
708    /[[:upper:]]/Ii
709      A      A
710      a      a
711    
712  /[[:lower:]]/i  /[[:lower:]]/Ii
713      A      A
714      a      a
715    
716  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
717      ab      ab
718      aB      aB
719      *** Failers      *** Failers
720      Ab      Ab
721      AB      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
1538    set in the pattern's options; consequently pcre_get_named_substring() produces
1539    a 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,
3040    though 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
3047    optimizations defeat this. So does the PCRE optimization unless we disable it
3048    with \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
3465    AbcdCBefgBhiBqz
3466    
3467    /(A (.*)   C? (*THEN)  | A D) z/x
3468    AbcdCBefgBhiBqz
3469    
3470    /(A (.*)   C? (*THEN)  | A D) \s* (*FAIL)/x
3471    AbcdCBefgBhiBqz
3472    
3473    /(A (.*)   C? (*THEN)  | A D) \s* z/x
3474    AbcdCBefgBhiBqz
3475    
3476    /(A (.*)   (?:C|) (*THEN)  | A D) (*FAIL)/x
3477    AbcdCBefgBhiBqz
3478    
3479    /(A (.*)   (?:C|) (*THEN)  | A D) z/x
3480    AbcdCBefgBhiBqz
3481    
3482    /(A (.*)   C{0,6} (*THEN)  | A D) (*FAIL)/x
3483    AbcdCBefgBhiBqz
3484    
3485    /(A (.*)   C{0,6} (*THEN)  | A D) z/x
3486    AbcdCBefgBhiBqz
3487    
3488    /(A (.*)   (CE){0,6} (*THEN)  | A D) (*FAIL)/x
3489    AbcdCEBefgBhiBqz
3490    
3491    /(A (.*)   (CE){0,6} (*THEN)  | A D) z/x
3492    AbcdCEBefgBhiBqz
3493    
3494    /(A (.*)   (CE*){0,6} (*THEN)  | A D) (*FAIL)/x
3495    AbcdCBefgBhiBqz
3496    
3497    /(A (.*)   (CE*){0,6} (*THEN)  | A D) z/x
3498    AbcdCBefgBhiBqz
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
3572    different behaviour in Perl. Perhaps it disables some optimization; no tag is
3573    passed 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
3585    replaced 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