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

Legend:
Removed from v.43  
changed lines
  Added in v.488

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12