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