/[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 102 by ph10, Tue Mar 6 15:50:45 2007 UTC revision 574 by ph10, Sat Nov 20 17:47:27 2010 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    /-- Originally, the Perl >= 5.10 things were in here too, but now I have
9        separated many (most?) of them out into test 11. However, there may still
10        be some that were overlooked. --/
11    
12  /(a)b|/I  /(a)b|/I
13    
14  /abc/I  /abc/I
# Line 28  Line 39 
39      *** Failers      *** Failers
40      def\nabc      def\nabc
41    
42  /ab\hdef/X  /ab\idef/X
43    
44  /(?X)ab\hdef/X  /(?X)ab\idef/X
45    
46  /x{5,4}/  /x{5,4}/
47    
# Line 40  Line 51 
51    
52  /(?X)[\B]/  /(?X)[\B]/
53    
54    /(?X)[\R]/
55    
56    /(?X)[\X]/
57    
58    /[\B]/BZ
59    
60    /[\R]/BZ
61    
62    /[\X]/BZ
63    
64  /[z-a]/  /[z-a]/
65    
66  /^*/  /^*/
# Line 123  Line 144 
144      defabc      defabc
145      \Zdefabc      \Zdefabc
146    
147  /abc/IP  /abc/P
148      abc      abc
149      *** Failers      *** Failers
150    
151  /^abc|def/IP  /^abc|def/P
152      abcdef      abcdef
153      abcdef\B      abcdef\B
154    
155  /.*((abc)$|(def))/IP  /.*((abc)$|(def))/P
156      defabc      defabc
157      \Zdefabc      \Zdefabc
158    
159  /the quick brown fox/IP  /the quick brown fox/P
160      the quick brown fox      the quick brown fox
161      *** Failers      *** Failers
162      The Quick Brown Fox      The Quick Brown Fox
163    
164  /the quick brown fox/IPi  /the quick brown fox/Pi
165      the quick brown fox      the quick brown fox
166      The Quick Brown Fox      The Quick Brown Fox
167    
168  /abc.def/IP  /abc.def/P
169      *** Failers      *** Failers
170      abc\ndef      abc\ndef
171    
172  /abc$/IP  /abc$/P
173      abc      abc
174      abc\n      abc\n
175    
176  /(abc)\2/IP  /(abc)\2/P
177    
178  /(abc\1)/IP  /(abc\1)/P
179      abc      abc
180    
181  /)/  /)/
# Line 236  Line 257 
257    
258  /((?i)blah)\s+\1/I  /((?i)blah)\s+\1/I
259    
260  /((?i)b)/IDS  /((?i)b)/IDZS
261    
262  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
263    
# Line 333  Line 354 
354      *** Failers      *** Failers
355      a      a
356    
357  /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
358    
359  /^(a\1?){4}$/I  /^(a\1?){4}$/I
360        aaaa
361      aaaaaa      aaaaaa
362    
363    /Perl does not fail these two for the final subjects. Neither did PCRE until/
364    /release 8.01. The problem is in backtracking into a subpattern that contains/
365    /a recursive reference to itself. PCRE has now made these into atomic patterns./
366    
367    /^(xa|=?\1a){2}$/
368        xa=xaa
369        ** Failers
370        xa=xaaa
371    
372    /^(xa|=?\1a)+$/
373        xa=xaa
374        ** Failers
375        xa=xaaa
376    
377  /These are syntax tests from Perl 5.005/I  /These are syntax tests from Perl 5.005/I
378    
# Line 398  Line 434 
434    
435  /(?(1?)a|b)/  /(?(1?)a|b)/
436    
 /(?(1)a|b|c)/  
   
437  /[a[:xyz:/  /[a[:xyz:/
438    
439  /(?<=x+)y/  /(?<=x+)y/
# Line 440  Line 474 
474    
475  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
476  )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
477  )?)?)?)?)?)?)?)?)?otherword/IM  )?)?)?)?)?)?)?)?)?otherword/I
478    
479  /.*X/ID  /.*X/IDZ
480    
481  /.*X/IDs  /.*X/IDZs
482    
483  /(.*X|^B)/ID  /(.*X|^B)/IDZ
484    
485  /(.*X|^B)/IDs  /(.*X|^B)/IDZs
486    
487  /(?s)(.*X|^B)/ID  /(?s)(.*X|^B)/IDZ
488    
489  /(?s:.*X|^B)/ID  /(?s:.*X|^B)/IDZ
490    
491  /\Biss\B/I+  /\Biss\B/I+
492      Mississippi      Mississippi
# Line 568  Line 602 
602    
603  /ab\d+/I  /ab\d+/I
604    
605  /a(?(1)b)/I  /a(?(1)b)(.)/I
606    
607  /a(?(1)bag|big)/I  /a(?(1)bag|big)(.)/I
608    
609  /a(?(1)bag|big)*/I  /a(?(1)bag|big)*(.)/I
610    
611  /a(?(1)bag|big)+/I  /a(?(1)bag|big)+(.)/I
612    
613  /a(?(1)b..|b..)/I  /a(?(1)b..|b..)(.)/I
614    
615  /ab\d{0}e/I  /ab\d{0}e/I
616    
# Line 595  Line 629 
629      *** Failers      *** Failers
630      \Nabc      \Nabc
631    
632  /a*(b+)(z)(z)/IP  /a*(b+)(z)(z)/P
633      aaaabbbbzzzz      aaaabbbbzzzz
634      aaaabbbbzzzz\O0      aaaabbbbzzzz\O0
635      aaaabbbbzzzz\O1      aaaabbbbzzzz\O1
# Line 666  Line 700 
700      (ab(cd)ef)      (ab(cd)ef)
701      (ab(cd(ef)gh)ij)      (ab(cd(ef)gh)ij)
702    
703  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
704    
705  /^[[:^alnum:]]/D  /^[[:^alnum:]]/DZ
706    
707  /^[[:alpha:]]/D  /^[[:alpha:]]/DZ
708    
709  /^[[:^alpha:]]/D  /^[[:^alpha:]]/DZ
710    
711  /[_[:alpha:]]/IS  /[_[:alpha:]]/IS
712    
713  /^[[:ascii:]]/D  /^[[:ascii:]]/DZ
714    
715  /^[[:^ascii:]]/D  /^[[:^ascii:]]/DZ
716    
717  /^[[:blank:]]/D  /^[[:blank:]]/DZ
718    
719  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
720    
721  /[\n\x0b\x0c\x0d[:blank:]]/IS  /[\n\x0b\x0c\x0d[:blank:]]/IS
722    
723  /^[[:cntrl:]]/D  /^[[:cntrl:]]/DZ
724    
725  /^[[:digit:]]/D  /^[[:digit:]]/DZ
726    
727  /^[[:graph:]]/D  /^[[:graph:]]/DZ
728    
729  /^[[:lower:]]/D  /^[[:lower:]]/DZ
730    
731  /^[[:print:]]/D  /^[[:print:]]/DZ
732    
733  /^[[:punct:]]/D  /^[[:punct:]]/DZ
734    
735  /^[[:space:]]/D  /^[[:space:]]/DZ
736    
737  /^[[:upper:]]/D  /^[[:upper:]]/DZ
738    
739  /^[[:xdigit:]]/D  /^[[:xdigit:]]/DZ
740    
741  /^[[:word:]]/D  /^[[:word:]]/DZ
742    
743  /^[[:^cntrl:]]/D  /^[[:^cntrl:]]/DZ
744    
745  /^[12[:^digit:]]/D  /^[12[:^digit:]]/DZ
746    
747  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
748    
749  /[01[:alpha:]%]/D  /[01[:alpha:]%]/DZ
750    
751  /[[.ch.]]/I  /[[.ch.]]/I
752    
# Line 796  Line 830 
830    
831  /--------------------------------------------------------------------/I  /--------------------------------------------------------------------/I
832    
833  /#/IxMD  /#/IxDZ
834    
835  /a#/IxMD  /a#/IxDZ
836    
837  /[\s]/D  /[\s]/DZ
838    
839  /[\S]/D  /[\S]/DZ
840    
841  /a(?i)b/D  /a(?i)b/DZ
842      ab      ab
843      aB      aB
844      *** Failers      *** Failers
845      AB      AB
846    
847  /(a(?i)b)/D  /(a(?i)b)/DZ
848      ab      ab
849      aB      aB
850      *** Failers      *** Failers
851      AB      AB
852    
853  /   (?i)abc/IxD  /   (?i)abc/IxDZ
854    
855  /#this is a comment  /#this is a comment
856    (?i)abc/IxD    (?i)abc/IxDZ
857    
858  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
859    
860  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
861    
862  /\Q\E/D  /\Q\E/DZ
863      \      \
864    
865  /\Q\Ex/D  /\Q\Ex/DZ
866    
867  / \Q\E/D  / \Q\E/DZ
868    
869  /a\Q\E/D  /a\Q\E/DZ
870    abc    abc
871    bca    bca
872    bac    bac
873    
874  /a\Q\Eb/D  /a\Q\Eb/DZ
875    abc    abc
876    
877  /\Q\Eabc/D  /\Q\Eabc/DZ
878    
879  /x*+\w/D  /x*+\w/DZ
880      *** Failers      *** Failers
881      xxxxx      xxxxx
882    
883  /x?+/D  /x?+/DZ
884    
885  /x++/D  /x++/DZ
886    
887  /x{1,3}+/D  /x{1,3}+/DZ
888    
889  /(x)*+/D  /(x)*+/DZ
890    
891  /^(\w++|\s++)*$/I  /^(\w++|\s++)*$/I
892      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
# Line 882  Line 916 
916      *** Failers      *** Failers
917      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
918    
919  /(abc){1,3}+/D  /(abc){1,3}+/DZ
920    
921  /a+?+/I  /a+?+/I
922    
# Line 892  Line 926 
926    
927  /a{2,3}?+b/IU  /a{2,3}?+b/IU
928    
929  /x(?U)a++b/D  /x(?U)a++b/DZ
930      xaaaab      xaaaab
931    
932  /(?U)xa++b/D  /(?U)xa++b/DZ
933      xaaaab      xaaaab
934    
935  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
936    
937  /^x(?U)a+b/D  /^x(?U)a+b/DZ
938    
939  /^x(?U)(a+)b/D  /^x(?U)(a+)b/DZ
940    
941  /[.x.]/I  /[.x.]/I
942    
# Line 926  Line 960 
960    
961  /[[:space:]/I  /[[:space:]/I
962    
963  /[\s]/IDM  /[\s]/IDZ
964    
965  /[[:space:]]/IDM  /[[:space:]]/IDZ
966    
967  /[[:space:]abcde]/IDM  /[[:space:]abcde]/IDZ
968    
969  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
970      <>      <>
# Line 942  Line 976 
976      *** Failers      *** Failers
977      <abc      <abc
978    
979  |8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|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
980    
981  |\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|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
982    
983  /(.*)\d+\1/I  /(.*)\d+\1/I
984    
# Line 977  Line 1011 
1011    
1012  /()a/I  /()a/I
1013    
1014  /(?(1)ab|ac)/I  /(?(1)ab|ac)(.)/I
1015    
1016  /(?(1)abz|acz)/I  /(?(1)abz|acz)(.)/I
1017    
1018  /(?(1)abz)/I  /(?(1)abz)(.)/I
1019    
1020  /(?(1)abz)123/I  /(?(1)abz)(1)23/I
1021    
1022  /(a)+/I  /(a)+/I
1023    
# Line 1120  Line 1154 
1154     >abc>1(2)3<xyz<     >abc>1(2)3<xyz<
1155     >abc>(1(2)3)<xyz<     >abc>(1(2)3)<xyz<
1156    
1157  /(a(?1)b)/D  /(a(?1)b)/DZ
   
 /(a(?1)+b)/D  
1158    
1159  /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii  /(a(?1)+b)/DZ
     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  
1160    
1161  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
1162      12      12
# Line 1173  Line 1199 
1199      a=b      a=b
1200      a=bc      a=bc
1201    
1202  /a(?P<name1>b|c)d(?P<longername2>e)/D  /a(?P<name1>b|c)d(?P<longername2>e)/DZ
1203      abde      abde
1204      acde      acde
1205    
1206  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
1207    
1208  /(?P<a>a)...(?P=a)bbb(?P>a)d/D  /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
1209    
1210  /^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/Ii  /^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/Ii
1211      1221      1221
# Line 1215  Line 1241 
1241    
1242  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
1243    
1244  /(a)(bc)/IND  /(a)(bc)/INDZ
1245    abc    abc
1246    
1247  /(?P<one>a)(bc)/IND  /(?P<one>a)(bc)/INDZ
1248    abc    abc
1249    
1250  /(a)(?P<named>bc)/IND  /(a)(?P<named>bc)/INDZ
1251    
1252  /(a+)*zz/I  /(a+)*zz/I
1253    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
# Line 1239  Line 1265 
1265      abcdefgh\Cone\Ctwo      abcdefgh\Cone\Ctwo
1266      abcdefgh\Cthree      abcdefgh\Cthree
1267    
1268  /(?P<Tes>)(?P<Test>)/D  /(?P<Tes>)(?P<Test>)/DZ
1269    
1270  /(?P<Test>)(?P<Tes>)/D  /(?P<Test>)(?P<Tes>)/DZ
1271    
1272  /(?P<Z>zz)(?P<A>aa)/I  /(?P<Z>zz)(?P<A>aa)/I
1273      zzaa\CZ      zzaa\CZ
# Line 1260  Line 1286 
1286      [10,20,30,5,5,4,4,2,43,23,4234]      [10,20,30,5,5,4,4,2,43,23,4234]
1287      []      []
1288    
1289  /(a(b(?2)c))?/D  /(a(b(?2)c))?/DZ
1290    
1291  /(a(b(?2)c))*/D  /(a(b(?2)c))*/DZ
1292    
1293  /(a(b(?2)c)){0,2}/D  /(a(b(?2)c)){0,2}/DZ
1294    
1295  /[ab]{1}+/D  /[ab]{1}+/DZ
1296    
1297  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
1298       Baby Bjorn Active Carrier - With free SHIPPING!!       Baby Bjorn Active Carrier - With free SHIPPING!!
# Line 1274  Line 1300 
1300  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
1301       Baby Bjorn Active Carrier - With free SHIPPING!!       Baby Bjorn Active Carrier - With free SHIPPING!!
1302    
1303  /a*.*b/ISD  /a*.*b/ISDZ
1304    
1305  /(a|b)*.?c/ISD  /(a|b)*.?c/ISDZ
1306    
1307  /abc(?C255)de(?C)f/D  /abc(?C255)de(?C)f/DZ
1308    
1309  /abcde/ICD  /abcde/ICDZ
1310    abcde    abcde
1311    abcdfe    abcdfe
1312    
1313  /a*b/ICD  /a*b/ICDZ
1314    ab    ab
1315    aaaab    aaaab
1316    aaaacb    aaaacb
1317    
1318  /a+b/ICD  /a+b/ICDZ
1319    ab    ab
1320    aaaab    aaaab
1321    aaaacb    aaaacb
1322    
1323  /(abc|def)x/ICD  /(abc|def)x/ICDZ
1324    abcx    abcx
1325    defx    defx
1326    abcdefzx    abcdefzx
# Line 1304  Line 1330 
1330    abcdabcd    abcdabcd
1331    abcdcdcdcdcd    abcdcdcdcdcd
1332    
1333  /([ab]{,4}c|xy)/ICD  /([ab]{,4}c|xy)/ICDZ
1334      Note: that { does NOT introduce a quantifier      Note: that { does NOT introduce a quantifier
1335    
1336  /([ab]{1,4}c|xy){4,5}?123/ICD  /([ab]{1,4}c|xy){4,5}?123/ICDZ
1337      aacaacaacaacaac123      aacaacaacaacaac123
1338    
1339  /\b.*/I  /\b.*/I
# Line 1421  Line 1447 
1447      ** Failers      ** Failers
1448      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
1449    
1450  /ab.cd/IP  /ab.cd/P
1451      ab-cd      ab-cd
1452      ab=cd      ab=cd
1453      ** Failers      ** Failers
1454      ab\ncd      ab\ncd
1455    
1456  /ab.cd/IPs  /ab.cd/Ps
1457      ab-cd      ab-cd
1458      ab=cd      ab=cd
1459      ab\ncd      ab\ncd
# Line 1482  Line 1508 
1508      (this)      (this)
1509      ((this))      ((this))
1510    
1511  /a(b)c/IPN  /a(b)c/PN
1512      abc      abc
1513    
1514  /a(?P<name>b)c/IPN  /a(?P<name>b)c/PN
1515      abc      abc
1516    
1517  /\x{100}/I  /\x{100}/I
# Line 1667  a random value. /Ix Line 1693  a random value. /Ix
1693    
1694  /(d?|c)[ab]xyz/IS  /(d?|c)[ab]xyz/IS
1695    
1696  /^a*b\d/D  /^a*b\d/DZ
1697    
1698  /^a*+b\d/D  /^a*+b\d/DZ
1699    
1700  /^a*?b\d/D  /^a*?b\d/DZ
1701    
1702  /^a+A\d/D  /^a+A\d/DZ
1703      aaaA5      aaaA5
1704      ** Failers      ** Failers
1705      aaaa5      aaaa5
1706    
1707  /^a*A\d/IiD  /^a*A\d/IiDZ
1708      aaaA5      aaaA5
1709      aaaa5      aaaa5
1710    
# Line 1700  a random value. /Ix Line 1726  a random value. /Ix
1726  /Ix  /Ix
1727    large nest    large nest
1728    
1729  /a*\d/B  /a*\d/BZ
1730    
1731  /a*\D/B  /a*\D/BZ
1732    
1733  /0*\d/B  /0*\d/BZ
1734    
1735  /0*\D/B  /0*\D/BZ
1736    
1737  /a*\s/B  /a*\s/BZ
1738    
1739  /a*\S/B  /a*\S/BZ
1740    
1741  / *\s/B  / *\s/BZ
1742    
1743  / *\S/B  / *\S/BZ
1744    
1745  /a*\w/B  /a*\w/BZ
1746    
1747  /a*\W/B  /a*\W/BZ
1748    
1749  /=*\w/B  /=*\w/BZ
1750    
1751  /=*\W/B  /=*\W/BZ
1752    
1753  /\d*a/B  /\d*a/BZ
1754    
1755  /\d*2/B  /\d*2/BZ
1756    
1757  /\d*\d/B  /\d*\d/BZ
1758    
1759  /\d*\D/B  /\d*\D/BZ
1760    
1761  /\d*\s/B  /\d*\s/BZ
1762    
1763  /\d*\S/B  /\d*\S/BZ
1764    
1765  /\d*\w/B  /\d*\w/BZ
1766    
1767  /\d*\W/B  /\d*\W/BZ
1768    
1769  /\D*a/B  /\D*a/BZ
1770    
1771  /\D*2/B  /\D*2/BZ
1772    
1773  /\D*\d/B  /\D*\d/BZ
1774    
1775  /\D*\D/B  /\D*\D/BZ
1776    
1777  /\D*\s/B  /\D*\s/BZ
1778    
1779  /\D*\S/B  /\D*\S/BZ
1780    
1781  /\D*\w/B  /\D*\w/BZ
1782    
1783  /\D*\W/B  /\D*\W/BZ
1784    
1785  /\s*a/B  /\s*a/BZ
1786    
1787  /\s*2/B  /\s*2/BZ
1788    
1789  /\s*\d/B  /\s*\d/BZ
1790    
1791  /\s*\D/B  /\s*\D/BZ
1792    
1793  /\s*\s/B  /\s*\s/BZ
1794    
1795  /\s*\S/B  /\s*\S/BZ
1796    
1797  /\s*\w/B  /\s*\w/BZ
1798    
1799  /\s*\W/B  /\s*\W/BZ
1800    
1801  /\S*a/B  /\S*a/BZ
1802    
1803  /\S*2/B  /\S*2/BZ
1804    
1805  /\S*\d/B  /\S*\d/BZ
1806    
1807  /\S*\D/B  /\S*\D/BZ
1808    
1809  /\S*\s/B  /\S*\s/BZ
1810    
1811  /\S*\S/B  /\S*\S/BZ
1812    
1813  /\S*\w/B  /\S*\w/BZ
1814    
1815  /\S*\W/B  /\S*\W/BZ
1816    
1817  /\w*a/B  /\w*a/BZ
1818    
1819  /\w*2/B  /\w*2/BZ
1820    
1821  /\w*\d/B  /\w*\d/BZ
1822    
1823  /\w*\D/B  /\w*\D/BZ
1824    
1825  /\w*\s/B  /\w*\s/BZ
1826    
1827  /\w*\S/B  /\w*\S/BZ
1828    
1829  /\w*\w/B  /\w*\w/BZ
1830    
1831  /\w*\W/B  /\w*\W/BZ
1832    
1833  /\W*a/B  /\W*a/BZ
1834    
1835  /\W*2/B  /\W*2/BZ
1836    
1837  /\W*\d/B  /\W*\d/BZ
1838    
1839  /\W*\D/B  /\W*\D/BZ
1840    
1841  /\W*\s/B  /\W*\s/BZ
1842    
1843  /\W*\S/B  /\W*\S/BZ
1844    
1845  /\W*\w/B  /\W*\w/BZ
1846    
1847  /\W*\W/B  /\W*\W/BZ
1848    
1849  /[^a]+a/B  /[^a]+a/BZ
1850    
1851  /[^a]+a/Bi  /[^a]+a/BZi
1852    
1853  /[^a]+A/Bi  /[^a]+A/BZi
1854    
1855  /[^a]+b/B  /[^a]+b/BZ
1856    
1857  /[^a]+\d/B  /[^a]+\d/BZ
1858    
1859  /a*[^a]/B  /a*[^a]/BZ
1860    
1861  /(?P<abc>x)(?P<xyz>y)/I  /(?P<abc>x)(?P<xyz>y)/I
1862      xy\Cabc\Cxyz      xy\Cabc\Cxyz
# Line 1885  a random value. /Ix Line 1911  a random value. /Ix
1911      Xaaa      Xaaa
1912      Xaba      Xaba
1913    
1914  /^[\E\Qa\E-\Qz\E]+/B  /^[\E\Qa\E-\Qz\E]+/BZ
1915    
1916  /^[a\Q]bc\E]/B  /^[a\Q]bc\E]/BZ
1917    
1918  /^[a-\Q\E]/B  /^[a-\Q\E]/BZ
1919    
1920  /^(?P>abc)[()](?<abc>)/B  /^(?P>abc)[()](?<abc>)/BZ
1921    
1922  /^((?(abc)y)[()](?P<abc>x))+/B  /^((?(abc)y)[()](?P<abc>x))+/BZ
1923      (xy)x      (xy)x
1924    
1925  /^(?P>abc)\Q()\E(?<abc>)/B  /^(?P>abc)\Q()\E(?<abc>)/BZ
1926    
1927  /^(?P>abc)[a\Q(]\E(](?<abc>)/B  /^(?P>abc)[a\Q(]\E(](?<abc>)/BZ
1928    
1929  /^(?P>abc) # this is (a comment)  /^(?P>abc) # this is (a comment)
1930    (?<abc>)/Bx    (?<abc>)/BZx
1931    
1932  /^\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
1933      1221      1221
# Line 1917  a random value. /Ix Line 1943  a random value. /Ix
1943  /(?=(?'abc'\w+))\k<abc>:/I  /(?=(?'abc'\w+))\k<abc>:/I
1944      abcd:      abcd:
1945    
 /(?'abc'\w+):\k<abc>{2}/  
     a:aaxyz  
     ab:ababxyz  
     ** Failers  
     a:axyz  
     ab:abxyz  
   
1946  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
1947      adaa      adaa
1948      ** Failers      ** Failers
# Line 1936  a random value. /Ix Line 1955  a random value. /Ix
1955      ** Failers      ** Failers
1956      bddd      bddd
1957    
 /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x  
     abd  
     ce  
   
1958  /(?(<bc))/  /(?(<bc))/
1959    
1960  /(?(''))/  /(?(''))/
# Line 1957  a random value. /Ix Line 1972  a random value. /Ix
1972  /(?<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
1973      abcabc1Xabc2XabcXabcabc      abcabc1Xabc2XabcXabcabc
1974    
 /^(?(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  
   
1975  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
1976    
1977  /(?(DEFINE) abc) xyz/xI  /(?(DEFINE) abc) xyz/xI
# Line 1980  a random value. /Ix Line 1985  a random value. /Ix
1985  /^a.b/<lf>  /^a.b/<lf>
1986      a\rb      a\rb
1987      a\nb\<cr>      a\nb\<cr>
1988        a\x85b\<anycrlf>
1989      ** Failers      ** Failers
1990      a\nb      a\nb
1991      a\nb\<any>      a\nb\<any>
1992      a\rb\<cr>      a\rb\<cr>
1993      a\rb\<any>      a\rb\<any>
1994        a\x85b\<any>
1995        a\rb\<anycrlf>
1996    
1997  /^abc./mgx<any>  /^abc./mgx<any>
1998      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 \x{2028}abc8 \x{2029}abc9 JUNK      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
1999    
2000  /abc.$/mgx<any>  /abc.$/mgx<any>
2001      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
2002    
2003  /a/<cr><any>  /a/<cr><any>
2004    
2005  /a/<any><crlf>  /a/<any><crlf>
2006    
2007  /^a\Rb/  /^a\Rb/<bsr_unicode>
2008      a\nb      a\nb
2009      a\rb      a\rb
2010      a\r\nb      a\r\nb
# Line 2006  a random value. /Ix Line 2014  a random value. /Ix
2014      ** Failers      ** Failers
2015      a\n\rb      a\n\rb
2016    
2017  /^a\R*b/  /^a\R*b/<bsr_unicode>
2018      ab      ab
2019      a\nb      a\nb
2020      a\rb      a\rb
# Line 2017  a random value. /Ix Line 2025  a random value. /Ix
2025      a\n\rb      a\n\rb
2026      a\n\r\x85\x0cb      a\n\r\x85\x0cb
2027    
2028  /^a\R+b/  /^a\R+b/<bsr_unicode>
2029      a\nb      a\nb
2030      a\rb      a\rb
2031      a\r\nb      a\r\nb
# Line 2029  a random value. /Ix Line 2037  a random value. /Ix
2037      ** Failers      ** Failers
2038      ab      ab
2039    
2040  /^a\R{1,3}b/  /^a\R{1,3}b/<bsr_unicode>
2041      a\nb      a\nb
2042      a\n\rb      a\n\rb
2043      a\n\r\x85b      a\n\r\x85b
# Line 2041  a random value. /Ix Line 2049  a random value. /Ix
2049      a\n\n\n\rb      a\n\n\n\rb
2050      a\r      a\r
2051    
2052  /^a[\R]b/  /^a[\R]b/<bsr_unicode>
2053      aRb      aRb
2054      ** Failers      ** Failers
2055      a\nb      a\nb
# Line 2052  a random value. /Ix Line 2060  a random value. /Ix
2060  /(?1)X(?<abc>P)/I  /(?1)X(?<abc>P)/I
2061      abcPXP123      abcPXP123
2062    
 /(?(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  
   
2063  /(?:a(?&abc)b)*(?<abc>x)/  /(?:a(?&abc)b)*(?<abc>x)/
2064      123axbaxbaxbx456      123axbaxbaxbx456
2065      123axbaxbaxb456      123axbaxbaxb456
# Line 2089  a random value. /Ix Line 2081  a random value. /Ix
2081     defabcabcxyz     defabcabcxyz
2082     DEFabcABCXYZ     DEFabcABCXYZ
2083    
 /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/  
     ababababbbabZXXXX  
   
2084  /^(a)\g-2/  /^(a)\g-2/
2085    
2086  /^(a)\g/  /^(a)\g/
# Line 2129  a random value. /Ix Line 2118  a random value. /Ix
2118      afoo      afoo
2119      \r\nfoo      \r\nfoo
2120      \nfoo      \nfoo
2121    
2122    /^$/mg<any>
2123        abc\r\rxyz
2124        abc\n\rxyz
2125        ** Failers
2126        abc\r\nxyz
2127    
2128    /(?m)^$/<any>g+
2129        abc\r\n\r\n
2130    
2131    /(?m)^$|^\r\n/<any>g+
2132        abc\r\n\r\n
2133    
2134    /(?m)$/<any>g+
2135        abc\r\n\r\n
2136    
2137    /abc.$/mgx<anycrlf>
2138        abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
2139    
2140    /^X/m
2141        XABC
2142        ** Failers
2143        XABC\B
2144    
2145    /(ab|c)(?-1)/BZ
2146        abc
2147    
2148    /xy(?+1)(abc)/BZ
2149        xyabcabc
2150        ** Failers
2151        xyabc
2152    
2153    /x(?-0)y/
2154    
2155    /x(?-1)y/
2156    
2157    /x(?+0)y/
2158    
2159    /x(?+1)y/
2160    
2161    /^(abc)?(?(-1)X|Y)/BZ
2162        abcX
2163        Y
2164        ** Failers
2165        abcY
2166    
2167    /^((?(+1)X|Y)(abc))+/BZ
2168        YabcXabc
2169        YabcXabcXabc
2170        ** Failers
2171        XabcXabc
2172    
2173    /(?(-1)a)/BZ
2174    
2175    /((?(-1)a))/BZ
2176    
2177    /((?(-2)a))/BZ
2178    
2179    /^(?(+1)X|Y)(.)/BZ
2180        Y!
2181    
2182    /(?<A>tom|bon)-\k{A}/
2183        tom-tom
2184        bon-bon
2185        ** Failers
2186        tom-bon
2187    
2188    /\g{A/
2189    
2190    /(?|(abc)|(xyz))/BZ
2191       >abc<
2192       >xyz<
2193    
2194    /(x)(?|(abc)|(xyz))(x)/BZ
2195        xabcx
2196        xxyzx
2197    
2198    /(x)(?|(abc)(pqr)|(xyz))(x)/BZ
2199        xabcpqrx
2200        xxyzx
2201    
2202    /[\h]/BZ
2203        >\x09<
2204    
2205    /[\h]+/BZ
2206        >\x09\x20\xa0<
2207    
2208    /[\v]/BZ
2209    
2210    /[\H]/BZ
2211    
2212    /[^\h]/BZ
2213    
2214    /[\V]/BZ
2215    
2216    /[\x0a\V]/BZ
2217    
2218    /\H++X/BZ
2219        ** Failers
2220        XXXX
2221    
2222    /\H+\hY/BZ
2223        XXXX Y
2224    
2225    /\H+ Y/BZ
2226    
2227    /\h+A/BZ
2228    
2229    /\v*B/BZ
2230    
2231    /\V+\x0a/BZ
2232    
2233    /A+\h/BZ
2234    
2235    / *\H/BZ
2236    
2237    /A*\v/BZ
2238    
2239    /\x0b*\V/BZ
2240    
2241    /\d+\h/BZ
2242    
2243    /\d*\v/BZ
2244    
2245    /S+\h\S+\v/BZ
2246    
2247    /\w{3,}\h\w+\v/BZ
2248    
2249    /\h+\d\h+\w\h+\S\h+\H/BZ
2250    
2251    /\v+\d\v+\w\v+\S\v+\V/BZ
2252    
2253    /\H+\h\H+\d/BZ
2254    
2255    /\V+\v\V+\w/BZ
2256    
2257    /\( (?: [^()]* | (?R) )* \)/x
2258    (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
2259    
2260    /[\E]AAA/
2261    
2262    /[\Q\E]AAA/
2263    
2264    /[^\E]AAA/
2265    
2266    /[^\Q\E]AAA/
2267    
2268    /[\E^]AAA/
2269    
2270    /[\Q\E^]AAA/
2271    
2272    /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
2273    
2274    /^a+(*FAIL)/C
2275        aaaaaa
2276    
2277    /a+b?c+(*FAIL)/C
2278        aaabccc
2279    
2280    /a+b?(*PRUNE)c+(*FAIL)/C
2281        aaabccc
2282    
2283    /a+b?(*COMMIT)c+(*FAIL)/C
2284        aaabccc
2285    
2286    /a+b?(*SKIP)c+(*FAIL)/C
2287        aaabcccaaabccc
2288    
2289    /a+b?(*THEN)c+(*FAIL)/C
2290        aaabccc
2291    
2292    /a(*MARK)b/
2293    
2294    /(?i:A{1,}\6666666666)/
2295    
2296    /\g6666666666/
2297    
2298    /[\g6666666666]/
2299    
2300    /(?1)\c[/
2301    
2302    /.+A/<crlf>
2303        \r\nA
2304    
2305    /\nA/<crlf>
2306        \r\nA
2307    
2308    /[\r\n]A/<crlf>
2309        \r\nA
2310    
2311    /(\r|\n)A/<crlf>
2312        \r\nA
2313    
2314    /a(*CR)b/
2315    
2316    /(*CR)a.b/
2317        a\nb
2318        ** Failers
2319        a\rb
2320    
2321    /(*CR)a.b/<lf>
2322        a\nb
2323        ** Failers
2324        a\rb
2325    
2326    /(*LF)a.b/<CRLF>
2327        a\rb
2328        ** Failers
2329        a\nb
2330    
2331    /(*CRLF)a.b/
2332        a\rb
2333        a\nb
2334        ** Failers
2335        a\r\nb
2336    
2337    /(*ANYCRLF)a.b/<CR>
2338        ** Failers
2339        a\rb
2340        a\nb
2341        a\r\nb
2342    
2343    /(*ANY)a.b/<cr>
2344        ** Failers
2345        a\rb
2346        a\nb
2347        a\r\nb
2348        a\x85b
2349    
2350    /(*ANY).*/g
2351        abc\r\ndef
2352    
2353    /(*ANYCRLF).*/g
2354        abc\r\ndef
2355    
2356    /(*CRLF).*/g
2357        abc\r\ndef
2358    
2359    /a\Rb/I<bsr_anycrlf>
2360        a\rb
2361        a\nb
2362        a\r\nb
2363        ** Failers
2364        a\x85b
2365        a\x0bb
2366    
2367    /a\Rb/I<bsr_unicode>
2368        a\rb
2369        a\nb
2370        a\r\nb
2371        a\x85b
2372        a\x0bb
2373        ** Failers
2374        a\x85b\<bsr_anycrlf>
2375        a\x0bb\<bsr_anycrlf>
2376    
2377    /a\R?b/I<bsr_anycrlf>
2378        a\rb
2379        a\nb
2380        a\r\nb
2381        ** Failers
2382        a\x85b
2383        a\x0bb
2384    
2385    /a\R?b/I<bsr_unicode>
2386        a\rb
2387        a\nb
2388        a\r\nb
2389        a\x85b
2390        a\x0bb
2391        ** Failers
2392        a\x85b\<bsr_anycrlf>
2393        a\x0bb\<bsr_anycrlf>
2394    
2395    /a\R{2,4}b/I<bsr_anycrlf>
2396        a\r\n\nb
2397        a\n\r\rb
2398        a\r\n\r\n\r\n\r\nb
2399        ** Failers
2400        a\x85\85b
2401        a\x0b\0bb
2402    
2403    /a\R{2,4}b/I<bsr_unicode>
2404        a\r\rb
2405        a\n\n\nb
2406        a\r\n\n\r\rb
2407        a\x85\85b
2408        a\x0b\0bb
2409        ** Failers
2410        a\r\r\r\r\rb
2411        a\x85\85b\<bsr_anycrlf>
2412        a\x0b\0bb\<bsr_anycrlf>
2413    
2414    /(*BSR_ANYCRLF)a\Rb/I
2415        a\nb
2416        a\rb
2417    
2418    /(*BSR_UNICODE)a\Rb/I
2419        a\x85b
2420    
2421    /(*BSR_ANYCRLF)(*CRLF)a\Rb/I
2422        a\nb
2423        a\rb
2424    
2425    /(*CRLF)(*BSR_UNICODE)a\Rb/I
2426        a\x85b
2427    
2428    /(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
2429    
2430    /(?<a>)(?&)/
2431    
2432    /(?<abc>)(?&a)/
2433    
2434    /(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
2435    
2436    /(?+-a)/
2437    
2438    /(?-+a)/
2439    
2440    /(?(-1))/
2441    
2442    /(?(+10))/
2443    
2444    /(?(10))/
2445    
2446    /(?(+2))()()/
2447    
2448    /(?(2))()()/
2449    
2450    /\k''/
2451    
2452    /\k<>/
2453    
2454    /\k{}/
2455    
2456    /(?P=)/
2457    
2458    /(?P>)/
2459    
2460    /(?!\w)(?R)/
2461    
2462    /(?=\w)(?R)/
2463    
2464    /(?<!\w)(?R)/
2465    
2466    /(?<=\w)(?R)/
2467    
2468    /[[:foo:]]/
2469    
2470    /[[:1234:]]/
2471    
2472    /[[:f\oo:]]/
2473    
2474    /[[: :]]/
2475    
2476    /[[:...:]]/
2477    
2478    /[[:l\ower:]]/
2479    
2480    /[[:abc\:]]/
2481    
2482    /[abc[:x\]pqr:]]/
2483    
2484    /[[:a\dz:]]/
2485    
2486    /(^(a|b\g<-1'c))/
2487    
2488    /^(?+1)(?<a>x|y){0}z/
2489        xzxx
2490        yzyy
2491        ** Failers
2492        xxz
2493    
2494    /(\3)(\1)(a)/
2495        cat
2496    
2497    /(\3)(\1)(a)/<JS>
2498        cat
2499    
2500    /TA]/
2501        The ACTA] comes
2502    
2503    /TA]/<JS>
2504        The ACTA] comes
2505    
2506    /(?2)[]a()b](abc)/
2507        abcbabc
2508    
2509    /(?2)[^]a()b](abc)/
2510        abcbabc
2511    
2512    /(?1)[]a()b](abc)/
2513        abcbabc
2514        ** Failers
2515        abcXabc
2516    
2517    /(?1)[^]a()b](abc)/
2518        abcXabc
2519        ** Failers
2520        abcbabc
2521    
2522    /(?2)[]a()b](abc)(xyz)/
2523        xyzbabcxyz
2524    
2525    /(?&N)[]a(?<N>)](?<M>abc)/
2526       abc<abc
2527    
2528    /(?&N)[]a(?<N>)](abc)/
2529       abc<abc
2530    
2531    /a[]b/
2532    
2533    /a[^]b/
2534    
2535    /a[]b/<JS>
2536        ** Failers
2537        ab
2538    
2539    /a[]+b/<JS>
2540        ** Failers
2541        ab
2542    
2543    /a[]*+b/<JS>
2544        ** Failers
2545        ab
2546    
2547    /a[^]b/<JS>
2548        aXb
2549        a\nb
2550        ** Failers
2551        ab
2552    
2553    /a[^]+b/<JS>
2554        aXb
2555        a\nX\nXb
2556        ** Failers
2557        ab
2558    
2559    /a(?!)+b/
2560    
2561    /a(*FAIL)+b/
2562    
2563    /(abc|pqr|123){0}[xyz]/SI
2564    
2565    /(?(?=.*b)b|^)/CI
2566       adc
2567       abc
2568    
2569    /(?(?=b).*b|^d)/I
2570    
2571    /(?(?=.*b).*b|^d)/I
2572    
2573    /a?|b?/P
2574        abc
2575        ** Failers
2576        ddd\N
2577    
2578    /xyz/C
2579      xyz
2580      abcxyz
2581      abcxyz\Y
2582      ** Failers
2583      abc
2584      abc\Y
2585      abcxypqr
2586      abcxypqr\Y
2587    
2588    /^"((?(?=[a])[^"])|b)*"$/C
2589        "ab"
2590    
2591    /^"((?(?=[a])[^"])|b)*"$/
2592        "ab"
2593    
2594    /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
2595        XYabcdY
2596    
2597    /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
2598        XYabcdY
2599    
2600    /Xa{2,4}b/
2601        X\P
2602        Xa\P
2603        Xaa\P
2604        Xaaa\P
2605        Xaaaa\P
2606    
2607    /Xa{2,4}?b/
2608        X\P
2609        Xa\P
2610        Xaa\P
2611        Xaaa\P
2612        Xaaaa\P
2613    
2614    /Xa{2,4}+b/
2615        X\P
2616        Xa\P
2617        Xaa\P
2618        Xaaa\P
2619        Xaaaa\P
2620    
2621    /X\d{2,4}b/
2622        X\P
2623        X3\P
2624        X33\P
2625        X333\P
2626        X3333\P
2627    
2628    /X\d{2,4}?b/
2629        X\P
2630        X3\P
2631        X33\P
2632        X333\P
2633        X3333\P
2634    
2635    /X\d{2,4}+b/
2636        X\P
2637        X3\P
2638        X33\P
2639        X333\P
2640        X3333\P
2641    
2642    /X\D{2,4}b/
2643        X\P
2644        Xa\P
2645        Xaa\P
2646        Xaaa\P
2647        Xaaaa\P
2648    
2649    /X\D{2,4}?b/
2650        X\P
2651        Xa\P
2652        Xaa\P
2653        Xaaa\P
2654        Xaaaa\P
2655    
2656    /X\D{2,4}+b/
2657        X\P
2658        Xa\P
2659        Xaa\P
2660        Xaaa\P
2661        Xaaaa\P
2662    
2663    /X[abc]{2,4}b/
2664        X\P
2665        Xa\P
2666        Xaa\P
2667        Xaaa\P
2668        Xaaaa\P
2669    
2670    /X[abc]{2,4}?b/
2671        X\P
2672        Xa\P
2673        Xaa\P
2674        Xaaa\P
2675        Xaaaa\P
2676    
2677    /X[abc]{2,4}+b/
2678        X\P
2679        Xa\P
2680        Xaa\P
2681        Xaaa\P
2682        Xaaaa\P
2683    
2684    /X[^a]{2,4}b/
2685        X\P
2686        Xz\P
2687        Xzz\P
2688        Xzzz\P
2689        Xzzzz\P
2690    
2691    /X[^a]{2,4}?b/
2692        X\P
2693        Xz\P
2694        Xzz\P
2695        Xzzz\P
2696        Xzzzz\P
2697    
2698    /X[^a]{2,4}+b/
2699        X\P
2700        Xz\P
2701        Xzz\P
2702        Xzzz\P
2703        Xzzzz\P
2704    
2705    /(Y)X\1{2,4}b/
2706        YX\P
2707        YXY\P
2708        YXYY\P
2709        YXYYY\P
2710        YXYYYY\P
2711    
2712    /(Y)X\1{2,4}?b/
2713        YX\P
2714        YXY\P
2715        YXYY\P
2716        YXYYY\P
2717        YXYYYY\P
2718    
2719    /(Y)X\1{2,4}+b/
2720        YX\P
2721        YXY\P
2722        YXYY\P
2723        YXYYY\P
2724        YXYYYY\P
2725    
2726    /\++\KZ|\d+X|9+Y/
2727        ++++123999\P
2728        ++++123999Y\P
2729        ++++Z1234\P
2730    
2731    /Z(*F)/
2732        Z\P
2733        ZA\P
2734    
2735    /Z(?!)/
2736        Z\P
2737        ZA\P
2738    
2739    /dog(sbody)?/
2740        dogs\P
2741        dogs\P\P
2742    
2743    /dog(sbody)??/
2744        dogs\P
2745        dogs\P\P
2746    
2747    /dog|dogsbody/
2748        dogs\P
2749        dogs\P\P
2750    
2751    /dogsbody|dog/
2752        dogs\P
2753        dogs\P\P
2754    
2755    /\bthe cat\b/
2756        the cat\P
2757        the cat\P\P
2758    
2759    /abc/
2760       abc\P
2761       abc\P\P
2762    
2763    /\w+A/P
2764       CDAAAAB
2765    
2766    /\w+A/PU
2767       CDAAAAB
2768    
2769    /abc\K123/
2770        xyzabc123pqr
2771        xyzabc12\P
2772        xyzabc12\P\P
2773    
2774    /(?<=abc)123/
2775        xyzabc123pqr
2776        xyzabc12\P
2777        xyzabc12\P\P
2778    
2779    /\babc\b/
2780        +++abc+++
2781        +++ab\P
2782        +++ab\P\P
2783    
2784    /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
2785    
2786    /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
2787    
2788    /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
2789    
2790    /abc\K/+
2791        abcdef
2792        abcdef\N\N
2793        xyzabcdef\N\N
2794        ** Failers
2795        abcdef\N
2796        xyzabcdef\N
2797    
2798    /^(?:(?=abc)|abc\K)/+
2799        abcdef
2800        abcdef\N\N
2801        ** Failers
2802        abcdef\N
2803    
2804    /a?b?/+
2805        xyz
2806        xyzabc
2807        xyzabc\N
2808        xyzabc\N\N
2809        xyz\N\N
2810        ** Failers
2811        xyz\N
2812    
2813    /^a?b?/+
2814        xyz
2815        xyzabc
2816        ** Failers
2817        xyzabc\N
2818        xyzabc\N\N
2819        xyz\N\N
2820        xyz\N
2821    
2822    /^(?<name>a|b\g<name>c)/
2823        aaaa
2824        bacxxx
2825        bbaccxxx
2826        bbbacccxx
2827    
2828    /^(?<name>a|b\g'name'c)/
2829        aaaa
2830        bacxxx
2831        bbaccxxx
2832        bbbacccxx
2833    
2834    /^(a|b\g<1>c)/
2835        aaaa
2836        bacxxx
2837        bbaccxxx
2838        bbbacccxx
2839    
2840    /^(a|b\g'1'c)/
2841        aaaa
2842        bacxxx
2843        bbaccxxx
2844        bbbacccxx
2845    
2846    /^(a|b\g'-1'c)/
2847        aaaa
2848        bacxxx
2849        bbaccxxx
2850        bbbacccxx
2851    
2852    /(^(a|b\g<-1>c))/
2853        aaaa
2854        bacxxx
2855        bbaccxxx
2856        bbbacccxx
2857    
2858    /(?-i:\g<name>)(?i:(?<name>a))/
2859        XaaX
2860        XAAX
2861    
2862    /(?i:\g<name>)(?-i:(?<name>a))/
2863        XaaX
2864        ** Failers
2865        XAAX
2866    
2867    /(?-i:\g<+1>)(?i:(a))/
2868        XaaX
2869        XAAX
2870    
2871    /(?=(?<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>\})\}))\{/
2872    
2873    /(?<n>a|b|c)\g<n>*/
2874       abc
2875       accccbbb
2876    
2877    /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
2878        XYabcdY
2879    
2880    /(?<=b(?1)|zzz)(a)/
2881        xbaax
2882        xzzzax
2883    
2884    /(a)(?<=b\1)/
2885    
2886    /(a)(?<=b+(?1))/
2887    
2888    /(a+)(?<=b(?1))/
2889    
2890    /(a(?<=b(?1)))/
2891    
2892    /(?<=b(?1))xyz/
2893    
2894    /(?<=b(?1))xyz(b+)pqrstuvew/
2895    
2896    /(a|bc)\1/SI
2897    
2898    /(a|bc)\1{2,3}/SI
2899    
2900    /(a|bc)(?1)/SI
2901    
2902    /(a|b\1)(a|b\1)/SI
2903    
2904    /(a|b\1){2}/SI
2905    
2906    /(a|bbbb\1)(a|bbbb\1)/SI
2907    
2908    /(a|bbbb\1){2}/SI
2909    
2910    /^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
2911    
2912    /  (?: [\040\t] |  \(
2913    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
2914    \)  )*                          # optional leading comment
2915    (?:    (?:
2916    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
2917    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2918    |
2919    " (?:                      # opening quote...
2920    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
2921    |                     #    or
2922    \\ [^\x80-\xff]           #   Escaped something (something != CR)
2923    )* "  # closing quote
2924    )                    # initial word
2925    (?:  (?: [\040\t] |  \(
2926    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
2927    \)  )*  \.  (?: [\040\t] |  \(
2928    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
2929    \)  )*   (?:
2930    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
2931    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2932    |
2933    " (?:                      # opening quote...
2934    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
2935    |                     #    or
2936    \\ [^\x80-\xff]           #   Escaped something (something != CR)
2937    )* "  # closing quote
2938    )  )* # further okay, if led by a period
2939    (?: [\040\t] |  \(
2940    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
2941    \)  )*  @  (?: [\040\t] |  \(
2942    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
2943    \)  )*    (?:
2944    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
2945    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2946    |   \[                         # [
2947    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
2948    \]                        #           ]
2949    )                           # initial subdomain
2950    (?:                                  #
2951    (?: [\040\t] |  \(
2952    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
2953    \)  )*  \.                        # if led by a period...
2954    (?: [\040\t] |  \(
2955    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
2956    \)  )*   (?:
2957    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
2958    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2959    |   \[                         # [
2960    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
2961    \]                        #           ]
2962    )                     #   ...further okay
2963    )*
2964    # address
2965    |                     #  or
2966    (?:
2967    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
2968    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2969    |
2970    " (?:                      # opening quote...
2971    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
2972    |                     #    or
2973    \\ [^\x80-\xff]           #   Escaped something (something != CR)
2974    )* "  # closing quote
2975    )             # one word, optionally followed by....
2976    (?:
2977    [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
2978    \(
2979    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
2980    \)       |  # comments, or...
2981    
2982    " (?:                      # opening quote...
2983    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
2984    |                     #    or
2985    \\ [^\x80-\xff]           #   Escaped something (something != CR)
2986    )* "  # closing quote
2987    # quoted strings
2988    )*
2989    <  (?: [\040\t] |  \(
2990    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
2991    \)  )*                     # leading <
2992    (?:  @  (?: [\040\t] |  \(
2993    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
2994    \)  )*    (?:
2995    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
2996    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2997    |   \[                         # [
2998    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
2999    \]                        #           ]
3000    )                           # initial subdomain
3001    (?:                                  #
3002    (?: [\040\t] |  \(
3003    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3004    \)  )*  \.                        # if led by a period...
3005    (?: [\040\t] |  \(
3006    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3007    \)  )*   (?:
3008    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
3009    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3010    |   \[                         # [
3011    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
3012    \]                        #           ]
3013    )                     #   ...further okay
3014    )*
3015    
3016    (?:  (?: [\040\t] |  \(
3017    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3018    \)  )*  ,  (?: [\040\t] |  \(
3019    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3020    \)  )*  @  (?: [\040\t] |  \(
3021    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3022    \)  )*    (?:
3023    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
3024    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3025    |   \[                         # [
3026    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
3027    \]                        #           ]
3028    )                           # initial subdomain
3029    (?:                                  #
3030    (?: [\040\t] |  \(
3031    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3032    \)  )*  \.                        # if led by a period...
3033    (?: [\040\t] |  \(
3034    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3035    \)  )*   (?:
3036    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
3037    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3038    |   \[                         # [
3039    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
3040    \]                        #           ]
3041    )                     #   ...further okay
3042    )*
3043    )* # further okay, if led by comma
3044    :                                # closing colon
3045    (?: [\040\t] |  \(
3046    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3047    \)  )*  )? #       optional route
3048    (?:
3049    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
3050    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3051    |
3052    " (?:                      # opening quote...
3053    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
3054    |                     #    or
3055    \\ [^\x80-\xff]           #   Escaped something (something != CR)
3056    )* "  # closing quote
3057    )                    # initial word
3058    (?:  (?: [\040\t] |  \(
3059    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3060    \)  )*  \.  (?: [\040\t] |  \(
3061    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3062    \)  )*   (?:
3063    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
3064    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3065    |
3066    " (?:                      # opening quote...
3067    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
3068    |                     #    or
3069    \\ [^\x80-\xff]           #   Escaped something (something != CR)
3070    )* "  # closing quote
3071    )  )* # further okay, if led by a period
3072    (?: [\040\t] |  \(
3073    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3074    \)  )*  @  (?: [\040\t] |  \(
3075    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3076    \)  )*    (?:
3077    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
3078    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3079    |   \[                         # [
3080    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
3081    \]                        #           ]
3082    )                           # initial subdomain
3083    (?:                                  #
3084    (?: [\040\t] |  \(
3085    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3086    \)  )*  \.                        # if led by a period...
3087    (?: [\040\t] |  \(
3088    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3089    \)  )*   (?:
3090    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
3091    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3092    |   \[                         # [
3093    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
3094    \]                        #           ]
3095    )                     #   ...further okay
3096    )*
3097    #       address spec
3098    (?: [\040\t] |  \(
3099    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3100    \)  )*  > #                  trailing >
3101    # name and address
3102    )  (?: [\040\t] |  \(
3103    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
3104    \)  )*                       # optional trailing comment
3105    /xSI
3106    
3107    /<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
3108    
3109    "(?>.*/)foo"SI
3110    
3111    /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
3112    
3113    /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
3114    
3115    /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
3116    
3117    /<a[\s]+href[\s]*=[\s]*          # find <a href=
3118     ([\"\'])?                       # find single or double quote
3119     (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
3120                                     # quote, otherwise match up to next space
3121    /isxSI
3122    
3123    /^(?!:)                       # colon disallowed at start
3124      (?:                         # start of item
3125        (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
3126        (?(1)0 | () ) )           # if null previously matched, fail; else null
3127        :                         # followed by colon
3128      ){1,7}                      # end item; 1-7 of them required
3129      [0-9a-f]{1,4} $             # final hex number at end of string
3130      (?(1)|.)                    # check that there was an empty component
3131      /xiIS
3132    
3133    /(?|(?<a>A)|(?<a>B))/I
3134        AB\Ca
3135        BA\Ca
3136    
3137    /(?|(?<a>A)|(?<b>B))/
3138    
3139    /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
3140        b(?<quote> (?<apostrophe>')|(?<realquote>")) )
3141        (?('quote')[a-z]+|[0-9]+)/JIx
3142        a"aaaaa
3143        b"aaaaa
3144        ** Failers
3145        b"11111
3146        a"11111
3147    
3148    /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
3149        abcdX
3150        eX
3151        ** Failers
3152        abcdY
3153        ey
3154    
3155    /(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/JDZx
3156        abcdd
3157        ** Failers
3158        abcdde
3159    
3160    /abcd*/
3161        xxxxabcd\P
3162        xxxxabcd\P\P
3163    
3164    /abcd*/i
3165        xxxxabcd\P
3166        xxxxabcd\P\P
3167        XXXXABCD\P
3168        XXXXABCD\P\P
3169    
3170    /abc\d*/
3171        xxxxabc1\P
3172        xxxxabc1\P\P
3173    
3174    /(a)bc\1*/
3175        xxxxabca\P
3176        xxxxabca\P\P
3177    
3178    /abc[de]*/
3179        xxxxabcde\P
3180        xxxxabcde\P\P
3181    
3182    /-- This is not in the Perl >= 5.10 test because Perl seems currently to be
3183        broken and not behaving as specified in that it *does* bumpalong after
3184        hitting (*COMMIT). --/
3185    
3186    /(?1)(A(*COMMIT)|B)D/
3187        ABD
3188        XABD
3189        BAD
3190        ABXABD
3191        ** Failers
3192        ABX
3193        BAXBAD
3194    
3195    /(\3)(\1)(a)/<JS>
3196        cat
3197    
3198    /(\3)(\1)(a)/SI<JS>
3199        cat
3200    
3201    /(\3)(\1)(a)/SI
3202        cat
3203    
3204    /i(?(DEFINE)(?<s>a))/SI
3205        i
3206    
3207    /()i(?(1)a)/SI
3208        ia
3209    
3210    /(?i)a(?-i)b|c/BZ
3211        XabX
3212        XAbX
3213        CcC
3214        ** Failers
3215        XABX
3216    
3217    /(?i)a(?s)b|c/BZ
3218    
3219    /(?i)a(?s-i)b|c/BZ
3220    
3221    /^(ab(c\1)d|x){2}$/BZ
3222        xabcxd
3223    
3224    /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
3225    
3226    /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
3227    
3228    / -- The first four of these are not in the Perl >= 5.10 test because Perl
3229         documents that the use of \K in assertions is "not well defined". The
3230         last is here because Perl gives the match as "b" rather than "ab". I
3231         believe this to be a Perl bug. --/
3232    
3233    /(?=a\Kb)ab/
3234        ab
3235    
3236    /(?!a\Kb)ac/
3237        ac
3238    
3239    /^abc(?<=b\Kc)d/
3240        abcd
3241    
3242    /^abc(?<!b\Kq)d/
3243        abcd
3244    
3245    /(?>a\Kb)z|(ab)/
3246        ab
3247    
3248    /----------------------/
3249    
3250    /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
3251    
3252    /abc(*MARK:)pqr/
3253    
3254    /abc(*:)pqr/
3255    
3256    /abc(*FAIL:123)xyz/
3257    
3258    /--- This should, and does, fail. In Perl, it does not, which I think is a
3259         bug because replacing the B in the pattern by (B|D) does make it fail. ---/
3260    
3261    /A(*COMMIT)B/+K
3262        ACABX
3263    
3264    /--- These should be different, but in Perl 5.11 are not, which I think
3265         is a bug in Perl. ---/
3266    
3267    /A(*THEN)B|A(*THEN)C/K
3268        AC
3269    
3270    /A(*PRUNE)B|A(*PRUNE)C/K
3271        AC
3272    
3273    /--- A whole lot of tests of verbs with arguments are here rather than in test
3274         11 because Perl doesn't seem to follow its specification entirely
3275         correctly. ---/
3276    
3277    /--- Perl 5.11 sets $REGERROR on the AC failure case here; PCRE does not. It is
3278         not clear how Perl defines "involved in the failure of the match". ---/
3279    
3280    /^(A(*THEN:A)B|C(*THEN:B)D)/K
3281        AB
3282        CD
3283        ** Failers
3284        AC
3285        CB
3286    
3287    /--- Check the use of names for success and failure. PCRE doesn't show these
3288    names for success, though Perl does, contrary to its spec. ---/
3289    
3290    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K
3291        AB
3292        CD
3293        ** Failers
3294        AC
3295        CB
3296    
3297    /--- An empty name does not pass back an empty string. It is the same as if no
3298    name were given. ---/
3299    
3300    /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K
3301        AB
3302        CD
3303    
3304    /--- PRUNE goes to next bumpalong; COMMIT does not. ---/
3305    
3306    /A(*PRUNE:A)B/K
3307        ACAB
3308    
3309    /(*MARK:A)(*PRUNE:B)(C|X)/K
3310        C
3311        D
3312    
3313    /(*MARK:A)(*THEN:B)(C|X)/K
3314        C
3315        D
3316    
3317    /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/
3318    
3319    /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK
3320        AAAC
3321    
3322    /--- Same --/
3323    
3324    /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK
3325        AAAC
3326    
3327    /--- This should fail; the SKIP advances by one, but when we get to AC, the
3328         PRUNE kills it. ---/
3329    
3330    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
3331        AAAC
3332    
3333    /A(*:A)A+(*SKIP)(B|Z) | AC/xK
3334        AAAC
3335    
3336    /--- This should fail, as a null name is the same as no name ---/
3337    
3338    /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK
3339        AAAC
3340    
3341    /--- This fails in PCRE, and I think that is in accordance with Perl's
3342         documentation, though in Perl it succeeds. ---/
3343    
3344    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK
3345        AAAC
3346    
3347    /--- Mark names can be duplicated ---/
3348    
3349    /A(*:A)B|X(*:A)Y/K
3350        AABC
3351        XXYZ
3352    
3353    /^A(*:A)B|^X(*:A)Y/K
3354        ** Failers
3355        XAQQ
3356    
3357    /--- A check on what happens after hitting a mark and them bumping along to
3358    something that does not even start. Perl reports tags after the failures here,
3359    though it does not when the individual letters are made into something
3360    more complicated. ---/
3361    
3362    /A(*:A)B|XX(*:B)Y/K
3363        AABC
3364        XXYZ
3365        ** Failers
3366        XAQQ
3367        XAQQXZZ
3368        AXQQQ
3369        AXXQQQ
3370    
3371    /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
3372    optimizations defeat this. So does the PCRE optimization unless we disable it
3373    with \Y. ---/
3374    
3375    /(*COMMIT)ABC/
3376        ABCDEFG
3377        ** Failers
3378        DEFGABC\Y
3379    
3380    /--- Repeat some tests with added studying. ---/
3381    
3382    /A(*COMMIT)B/+KS
3383        ACABX
3384    
3385    /A(*THEN)B|A(*THEN)C/KS
3386        AC
3387    
3388    /A(*PRUNE)B|A(*PRUNE)C/KS
3389        AC
3390    
3391    /^(A(*THEN:A)B|C(*THEN:B)D)/KS
3392        AB
3393        CD
3394        ** Failers
3395        AC
3396        CB
3397    
3398    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/KS
3399        AB
3400        CD
3401        ** Failers
3402        AC
3403        CB
3404    
3405    /^(A(*PRUNE:)B|C(*PRUNE:B)D)/KS
3406        AB
3407        CD
3408    
3409    /A(*PRUNE:A)B/KS
3410        ACAB
3411    
3412    /(*MARK:A)(*PRUNE:B)(C|X)/KS
3413        C
3414        D
3415    
3416    /(*MARK:A)(*THEN:B)(C|X)/KS
3417        C
3418        D
3419    
3420    /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xKS
3421        AAAC
3422    
3423    /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xKS
3424        AAAC
3425    
3426    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xKS
3427        AAAC
3428    
3429    /A(*:A)A+(*SKIP)(B|Z) | AC/xKS
3430        AAAC
3431    
3432    /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xKS
3433        AAAC
3434    
3435    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xKS
3436        AAAC
3437    
3438    /A(*:A)B|XX(*:B)Y/KS
3439        AABC
3440        XXYZ
3441        ** Failers
3442        XAQQ
3443        XAQQXZZ
3444        AXQQQ
3445        AXXQQQ
3446    
3447    /(*COMMIT)ABC/
3448        ABCDEFG
3449        ** Failers
3450        DEFGABC\Y
3451    
3452    /^(ab (c+(*THEN)cd) | xyz)/x
3453        abcccd
3454    
3455    /^(ab (c+(*PRUNE)cd) | xyz)/x
3456        abcccd
3457    
3458    /^(ab (c+(*FAIL)cd) | xyz)/x
3459        abcccd
3460    
3461    /--- Perl 5.11 gets some of these wrong ---/
3462    
3463    /(?>.(*ACCEPT))*?5/
3464        abcde
3465    
3466    /(.(*ACCEPT))*?5/
3467        abcde
3468    
3469    /(.(*ACCEPT))5/
3470        abcde
3471    
3472    /(.(*ACCEPT))*5/
3473        abcde
3474    
3475    /A\NB./BZ
3476        ACBD
3477        *** Failers
3478        A\nB
3479        ACB\n
3480    
3481    /A\NB./sBZ
3482        ACBD
3483        ACB\n
3484        *** Failers
3485        A\nB
3486    
3487    /A\NB/<crlf>
3488        A\nB
3489        A\rB
3490        ** Failers
3491        A\r\nB
3492    
3493    /\R+b/BZ
3494    
3495    /\R+\n/BZ
3496    
3497    /\R+\d/BZ
3498    
3499    /\d*\R/BZ
3500    
3501    /\s*\R/BZ
3502    
3503    /-- Perl treats this one differently, not failing the second string. I believe
3504        that is a bug in Perl. --/
3505    
3506    /^((abc|abcx)(*THEN)y|abcd)/
3507        abcd
3508        *** Failers
3509        abcxy
3510    
3511    /(?<=abc)def/
3512        abc\P\P
3513    
3514    /abc$/
3515        abc
3516        abc\P
3517        abc\P\P
3518    
3519    /abc$/m
3520        abc
3521        abc\n
3522        abc\P\P
3523        abc\n\P\P
3524        abc\P
3525        abc\n\P
3526    
3527    /abc\z/
3528        abc
3529        abc\P
3530        abc\P\P
3531    
3532    /abc\Z/
3533        abc
3534        abc\P
3535        abc\P\P
3536    
3537    /abc\b/
3538        abc
3539        abc\P
3540        abc\P\P
3541    
3542    /abc\B/
3543        abc
3544        abc\P
3545        abc\P\P
3546    
3547    /.+/
3548        abc\>0
3549        abc\>1
3550        abc\>2
3551        abc\>3
3552        abc\>4
3553        abc\>-4
3554    
3555    /^\cģ/
3556    
3557  / End of testinput2 /  /-- End of testinput2 --/

Legend:
Removed from v.102  
changed lines
  Added in v.574

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12