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

Legend:
Removed from v.96  
changed lines
  Added in v.915

  ViewVC Help
Powered by ViewVC 1.1.5