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

Diff of /code/trunk/testdata/testoutput2

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

revision 937 by ph10, Sun Feb 26 15:58:56 2012 UTC revision 1408 by ph10, Tue Dec 3 16:27:00 2013 UTC
# Line 7  Line 7 
7    
8      NOTE: This is a non-UTF set of tests. When UTF support is needed, use      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. --/      test 5, and if Unicode Property Support is needed, use test 7. --/
10    
11    < forbid 8W
12    
13  /(a)b|/I  /(a)b|/I
14  Capturing subpattern count = 1  Capturing subpattern count = 1
15    May match empty string
16  No options  No options
17  No first char  No first char
18  No need char  No need char
# Line 228  No options Line 231  No options
231  No first char  No first char
232  No need char  No need char
233  Subject length lower bound = 1  Subject length lower bound = 1
234  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 a b
235    
236  /(ab\2)/  /(ab\2)/
237  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
# Line 448  Need char = '=' Line 451  Need char = '='
451    
452  /(?<!bar|cattle)foo/I  /(?<!bar|cattle)foo/I
453  Capturing subpattern count = 0  Capturing subpattern count = 0
454    Max lookbehind = 6
455  No options  No options
456  First char = 'f'  First char = 'f'
457  Need char = 'o'  Need char = 'o'
 Max lookbehind = 6  
458      foo      foo
459   0: foo   0: foo
460      catfoo      catfoo
# Line 498  No need char Line 501  No need char
501    
502  /(?s).*/I  /(?s).*/I
503  Capturing subpattern count = 0  Capturing subpattern count = 0
504    May match empty string
505  Options: anchored dotall  Options: anchored dotall
506  No first char  No first char
507  No need char  No need char
# Line 545  Failed: conditional group contains more Line 549  Failed: conditional group contains more
549  Failed: conditional group contains more than two branches at offset 12  Failed: conditional group contains more than two branches at offset 12
550    
551  /(?(1a)/  /(?(1a)/
552  Failed: missing ) at offset 6  Failed: malformed number or name after (?( at offset 4
553    
554  /(?(1a))/  /(?(1a))/
555  Failed: reference to non-existent subpattern at offset 6  Failed: malformed number or name after (?( at offset 4
556    
557  /(?(?i))/  /(?(?i))/
558  Failed: assertion expected after (?( at offset 3  Failed: assertion expected after (?( at offset 3
# Line 631  No match Line 635  No match
635    
636  /\Aabc/Im  /\Aabc/Im
637  Capturing subpattern count = 0  Capturing subpattern count = 0
638    Max lookbehind = 1
639  Options: anchored multiline  Options: anchored multiline
640  No first char  No first char
641  No need char  No need char
# Line 656  No need char Line 661  No need char
661    
662  /(?<=foo)[ab]/IS  /(?<=foo)[ab]/IS
663  Capturing subpattern count = 0  Capturing subpattern count = 0
664    Max lookbehind = 3
665  No options  No options
666  No first char  No first char
667  No need char  No need char
 Max lookbehind = 3  
668  Subject length lower bound = 1  Subject length lower bound = 1
669  Starting byte set: a b  Starting byte set: a b
670    
671  /(?<!foo)(alpha|omega)/IS  /(?<!foo)(alpha|omega)/IS
672  Capturing subpattern count = 1  Capturing subpattern count = 1
673    Max lookbehind = 3
674  No options  No options
675  No first char  No first char
676  Need char = 'a'  Need char = 'a'
 Max lookbehind = 3  
677  Subject length lower bound = 5  Subject length lower bound = 5
678  Starting byte set: a o  Starting byte set: a o
679    
# Line 682  Starting byte set: a b Line 687  Starting byte set: a b
687    
688  /(?<=foo\n)^bar/Im  /(?<=foo\n)^bar/Im
689  Capturing subpattern count = 0  Capturing subpattern count = 0
690    Max lookbehind = 4
691  Contains explicit CR or LF match  Contains explicit CR or LF match
692  Options: multiline  Options: multiline
693  No first char  No first char
694  Need char = 'r'  Need char = 'r'
 Max lookbehind = 4  
695      foo\nbarbar      foo\nbarbar
696   0: bar   0: bar
697      ***Failers      ***Failers
# Line 700  No match Line 705  No match
705    
706  /^(?<=foo\n)bar/Im  /^(?<=foo\n)bar/Im
707  Capturing subpattern count = 0  Capturing subpattern count = 0
708    Max lookbehind = 4
709  Contains explicit CR or LF match  Contains explicit CR or LF match
710  Options: multiline  Options: multiline
711  First char at start or follows newline  First char at start or follows newline
712  Need char = 'r'  Need char = 'r'
 Max lookbehind = 4  
713      foo\nbarbar      foo\nbarbar
714   0: bar   0: bar
715      ***Failers      ***Failers
# Line 743  Failed: lookbehind assertion is not fixe Line 748  Failed: lookbehind assertion is not fixe
748    
749  /(?<=bullock|donkey)-cart/I  /(?<=bullock|donkey)-cart/I
750  Capturing subpattern count = 0  Capturing subpattern count = 0
751    Max lookbehind = 7
752  No options  No options
753  First char = '-'  First char = '-'
754  Need char = 't'  Need char = 't'
 Max lookbehind = 7  
755      the bullock-cart      the bullock-cart
756   0: -cart   0: -cart
757      a donkey-cart race      a donkey-cart race
# Line 760  No match Line 765  No match
765    
766  /(?<=ab(?i)x|y|z)/I  /(?<=ab(?i)x|y|z)/I
767  Capturing subpattern count = 0  Capturing subpattern count = 0
768    Max lookbehind = 3
769    May match empty string
770  No options  No options
771  No first char  No first char
772  No need char  No need char
 Max lookbehind = 3  
773    
774  /(?>.*)(?<=(abcd)|(xyz))/I  /(?>.*)(?<=(abcd)|(xyz))/I
775  Capturing subpattern count = 2  Capturing subpattern count = 2
776    Max lookbehind = 4
777    May match empty string
778  No options  No options
779  First char at start or follows newline  No first char
780  No need char  No need char
 Max lookbehind = 4  
781      alphabetabcd      alphabetabcd
782   0: alphabetabcd   0: alphabetabcd
783   1: abcd   1: abcd
# Line 781  Max lookbehind = 4 Line 788  Max lookbehind = 4
788    
789  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
790  Capturing subpattern count = 0  Capturing subpattern count = 0
791    Max lookbehind = 4
792  No options  No options
793  First char = 'Z'  First char = 'Z'
794  Need char = 'Z'  Need char = 'Z'
 Max lookbehind = 4  
795      abxyZZ      abxyZZ
796   0: ZZ   0: ZZ
797      abXyZZ      abXyZZ
# Line 810  No match Line 817  No match
817    
818  /(?<!(foo)a)bar/I  /(?<!(foo)a)bar/I
819  Capturing subpattern count = 1  Capturing subpattern count = 1
820    Max lookbehind = 4
821  No options  No options
822  First char = 'b'  First char = 'b'
823  Need char = 'r'  Need char = 'r'
 Max lookbehind = 4  
824      bar      bar
825   0: bar   0: bar
826      foobbar      foobbar
# Line 823  No match Line 830  No match
830      fooabar      fooabar
831  No match  No match
832    
 /This one is here because Perl 5.005_02 doesn't fail it/I  
 Capturing subpattern count = 0  
 No options  
 First char = 'T'  
 Need char = 't'  
   
 /^(a)?(?(1)a|b)+$/I  
 Capturing subpattern count = 1  
 Options: anchored  
 No first char  
 No need char  
     *** Failers  
 No match  
     a  
 No match  
   
833  /This one is here because Perl behaves differently; see also the following/I  /This one is here because Perl behaves differently; see also the following/I
834  Capturing subpattern count = 0  Capturing subpattern count = 0
835  No options  No options
# Line 1212  No need char Line 1203  No need char
1203    
1204  /\Biss\B/I+  /\Biss\B/I+
1205  Capturing subpattern count = 0  Capturing subpattern count = 0
1206    Max lookbehind = 1
1207  No options  No options
1208  First char = 'i'  First char = 'i'
1209  Need char = 's'  Need char = 's'
 Max lookbehind = 1  
1210      Mississippi      Mississippi
1211   0: iss   0: iss
1212   0+ issippi   0+ issippi
# Line 1233  Need char = 's' Line 1224  Need char = 's'
1224    
1225  /\Biss\B/IG+  /\Biss\B/IG+
1226  Capturing subpattern count = 0  Capturing subpattern count = 0
1227    Max lookbehind = 1
1228  No options  No options
1229  First char = 'i'  First char = 'i'
1230  Need char = 's'  Need char = 's'
 Max lookbehind = 1  
1231      Mississippi      Mississippi
1232   0: iss   0: iss
1233   0+ issippi   0+ issippi
1234    
1235  /\Biss\B/Ig+  /\Biss\B/Ig+
1236  Capturing subpattern count = 0  Capturing subpattern count = 0
1237    Max lookbehind = 1
1238  No options  No options
1239  First char = 'i'  First char = 'i'
1240  Need char = 's'  Need char = 's'
 Max lookbehind = 1  
1241      Mississippi      Mississippi
1242   0: iss   0: iss
1243   0+ issippi   0+ issippi
# Line 1259  No match Line 1250  No match
1250    
1251  /(?<=[Ms])iss/Ig+  /(?<=[Ms])iss/Ig+
1252  Capturing subpattern count = 0  Capturing subpattern count = 0
1253    Max lookbehind = 1
1254  No options  No options
1255  First char = 'i'  First char = 'i'
1256  Need char = 's'  Need char = 's'
 Max lookbehind = 1  
1257      Mississippi      Mississippi
1258   0: iss   0: iss
1259   0+ issippi   0+ issippi
# Line 1271  Max lookbehind = 1 Line 1262  Max lookbehind = 1
1262    
1263  /(?<=[Ms])iss/IG+  /(?<=[Ms])iss/IG+
1264  Capturing subpattern count = 0  Capturing subpattern count = 0
1265    Max lookbehind = 1
1266  No options  No options
1267  First char = 'i'  First char = 'i'
1268  Need char = 's'  Need char = 's'
 Max lookbehind = 1  
1269      Mississippi      Mississippi
1270   0: iss   0: iss
1271   0+ issippi   0+ issippi
# Line 1392  Need char = 'c' Line 1383  Need char = 'c'
1383    
1384  /a*/I  /a*/I
1385  Capturing subpattern count = 0  Capturing subpattern count = 0
1386    May match empty string
1387  No options  No options
1388  No first char  No first char
1389  No need char  No need char
# Line 1410  Need char = 'a' Line 1402  Need char = 'a'
1402    
1403  /a{0,3}/I  /a{0,3}/I
1404  Capturing subpattern count = 0  Capturing subpattern count = 0
1405    May match empty string
1406  No options  No options
1407  No first char  No first char
1408  No need char  No need char
# Line 1452  Need char = 'r' Line 1445  Need char = 'r'
1445    
1446  /...(?<=abc)/I  /...(?<=abc)/I
1447  Capturing subpattern count = 0  Capturing subpattern count = 0
1448    Max lookbehind = 3
1449  No options  No options
1450  No first char  No first char
1451  No need char  No need char
 Max lookbehind = 3  
1452    
1453  /abc(?!pqr)/I  /abc(?!pqr)/I
1454  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 1609  Need char = 'e' Line 1602  Need char = 'e'
1602    
1603  /a?b?/I  /a?b?/I
1604  Capturing subpattern count = 0  Capturing subpattern count = 0
1605    May match empty string
1606  No options  No options
1607  No first char  No first char
1608  No need char  No need char
# Line 1627  No match Line 1621  No match
1621    
1622  /|-/I  /|-/I
1623  Capturing subpattern count = 0  Capturing subpattern count = 0
1624    May match empty string
1625  No options  No options
1626  No first char  No first char
1627  No need char  No need char
# Line 2640  Need char = '-' Line 2635  Need char = '-'
2635          End          End
2636  ------------------------------------------------------------------  ------------------------------------------------------------------
2637  Capturing subpattern count = 0  Capturing subpattern count = 0
2638    May match empty string
2639  Options: extended  Options: extended
2640  No first char  No first char
2641  No need char  No need char
# Line 2659  No need char Line 2655  No need char
2655  /[\s]/DZ  /[\s]/DZ
2656  ------------------------------------------------------------------  ------------------------------------------------------------------
2657          Bra          Bra
2658          [\x09\x0a\x0c\x0d ]          [\x09-\x0d ]
2659          Ket          Ket
2660          End          End
2661  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2671  No need char Line 2667  No need char
2667  /[\S]/DZ  /[\S]/DZ
2668  ------------------------------------------------------------------  ------------------------------------------------------------------
2669          Bra          Bra
2670          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)          [\x00-\x08\x0e-\x1f!-\xff] (neg)
2671          Ket          Ket
2672          End          End
2673  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2782  Need char = '0' Line 2778  Need char = '0'
2778          End          End
2779  ------------------------------------------------------------------  ------------------------------------------------------------------
2780  Capturing subpattern count = 0  Capturing subpattern count = 0
2781    May match empty string
2782  No options  No options
2783  No first char  No first char
2784  No need char  No need char
# Line 2881  No match Line 2878  No match
2878          End          End
2879  ------------------------------------------------------------------  ------------------------------------------------------------------
2880  Capturing subpattern count = 0  Capturing subpattern count = 0
2881    May match empty string
2882  No options  No options
2883  No first char  No first char
2884  No need char  No need char
# Line 2897  No options Line 2895  No options
2895  First char = 'x'  First char = 'x'
2896  No need char  No need char
2897    
2898  /x{1,3}+/DZ  /x{1,3}+/BZO
2899  ------------------------------------------------------------------  ------------------------------------------------------------------
2900          Bra          Bra
         Once  
2901          x          x
2902          x{0,2}          x{0,2}+
2903          Ket          Ket
2904            End
2905    ------------------------------------------------------------------
2906    
2907    /x{1,3}+/BZOi
2908    ------------------------------------------------------------------
2909            Bra
2910         /i x
2911         /i x{0,2}+
2912            Ket
2913            End
2914    ------------------------------------------------------------------
2915    
2916    /[^x]{1,3}+/BZO
2917    ------------------------------------------------------------------
2918            Bra
2919            [^x]
2920            [^x]{0,2}+
2921            Ket
2922            End
2923    ------------------------------------------------------------------
2924    
2925    /[^x]{1,3}+/BZOi
2926    ------------------------------------------------------------------
2927            Bra
2928         /i [^x]
2929         /i [^x]{0,2}+
2930          Ket          Ket
2931          End          End
2932  ------------------------------------------------------------------  ------------------------------------------------------------------
 Capturing subpattern count = 0  
 No options  
 First char = 'x'  
 No need char  
2933    
2934  /(x)*+/DZ  /(x)*+/DZ
2935  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2923  No need char Line 2942  No need char
2942          End          End
2943  ------------------------------------------------------------------  ------------------------------------------------------------------
2944  Capturing subpattern count = 1  Capturing subpattern count = 1
2945    May match empty string
2946  No options  No options
2947  No first char  No first char
2948  No need char  No need char
2949    
2950  /^(\w++|\s++)*$/I  /^(\w++|\s++)*$/I
2951  Capturing subpattern count = 1  Capturing subpattern count = 1
2952    May match empty string
2953  Options: anchored  Options: anchored
2954  No first char  No first char
2955  No need char  No need char
# Line 3090  Need char = 'b' Line 3111  Need char = 'b'
3111          [bc]+          [bc]+
3112          Ket          Ket
3113          CBra 5          CBra 5
3114          \w*          \w*+
3115          Ket          Ket
3116          Ket          Ket
3117          Ket          Ket
# Line 3169  Failed: missing terminating ] for charac Line 3190  Failed: missing terminating ] for charac
3190  /[\s]/IDZ  /[\s]/IDZ
3191  ------------------------------------------------------------------  ------------------------------------------------------------------
3192          Bra          Bra
3193          [\x09\x0a\x0c\x0d ]          [\x09-\x0d ]
3194          Ket          Ket
3195          End          End
3196  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3233  No match Line 3254  No match
3254          End          End
3255  ------------------------------------------------------------------  ------------------------------------------------------------------
3256  Capturing subpattern count = 0  Capturing subpattern count = 0
3257    Max lookbehind = 1
3258  No options  No options
3259  First char = '8'  First char = '8'
3260  Need char = 'X'  Need char = 'X'
 Max lookbehind = 1  
3261    
3262  |\$\<\.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  |\$\<\.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
3263  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3247  Max lookbehind = 1 Line 3268  Max lookbehind = 1
3268          End          End
3269  ------------------------------------------------------------------  ------------------------------------------------------------------
3270  Capturing subpattern count = 0  Capturing subpattern count = 0
3271    Max lookbehind = 1
3272  No options  No options
3273  First char = '$'  First char = '$'
3274  Need char = 'X'  Need char = 'X'
 Max lookbehind = 1  
3275    
3276  /(.*)\d+\1/I  /(.*)\d+\1/I
3277  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 3304  Need char = 'b' Line 3325  Need char = 'b'
3325    
3326  /(?=a).*/I  /(?=a).*/I
3327  Capturing subpattern count = 0  Capturing subpattern count = 0
3328    May match empty string
3329  No options  No options
3330  First char = 'a'  First char = 'a'
3331  No need char  No need char
# Line 3322  Need char = 'z' (caseless) Line 3344  Need char = 'z' (caseless)
3344    
3345  /(?=a)(?=b)/I  /(?=a)(?=b)/I
3346  Capturing subpattern count = 0  Capturing subpattern count = 0
3347    May match empty string
3348  No options  No options
3349  First char = 'a'  First char = 'a'
3350  No need char  No need char
# Line 3388  Need char = 'a' Line 3411  Need char = 'a'
3411    
3412  /(a)*/I  /(a)*/I
3413  Capturing subpattern count = 1  Capturing subpattern count = 1
3414    May match empty string
3415  No options  No options
3416  No first char  No first char
3417  No need char  No need char
# Line 3616  No match Line 3640  No match
3640    
3641  /(?C0)(abc(?C1))*/I  /(?C0)(abc(?C1))*/I
3642  Capturing subpattern count = 1  Capturing subpattern count = 1
3643    May match empty string
3644  No options  No options
3645  No first char  No first char
3646  No need char  No need char
# Line 3649  No need char Line 3674  No need char
3674    
3675  /(\d{3}(?C))*/I  /(\d{3}(?C))*/I
3676  Capturing subpattern count = 1  Capturing subpattern count = 1
3677    May match empty string
3678  No options  No options
3679  No first char  No first char
3680  No need char  No need char
# Line 3763  Callout 2: last capture = -1 Line 3789  Callout 2: last capture = -1
3789    
3790  /(?<=(abc)(?C))xyz/I  /(?<=(abc)(?C))xyz/I
3791  Capturing subpattern count = 1  Capturing subpattern count = 1
3792    Max lookbehind = 3
3793  No options  No options
3794  First char = 'x'  First char = 'x'
3795  Need char = 'z'  Need char = 'z'
 Max lookbehind = 3  
3796     abcxyz\C+     abcxyz\C+
3797  Callout 0: last capture = 1  Callout 0: last capture = 1
3798   0: <unset>   0: <unset>
# Line 3785  Need char = 'b' Line 3811  Need char = 'b'
3811  --->abbbbbccc  --->abbbbbccc
3812    1 ^        ^    1 ^        ^
3813  Callout data = 1  Callout data = 1
   1 ^       ^  
 Callout data = 1  
   1 ^      ^  
 Callout data = 1  
   1 ^     ^  
 Callout data = 1  
   1 ^    ^  
 Callout data = 1  
   1 ^   ^  
 Callout data = 1  
   1 ^  ^  
 Callout data = 1  
   1 ^ ^  
 Callout data = 1  
3814  No match  No match
3815    
3816  /a(b+?)(c*?)(?C1)/I  /a(b+?)(c*?)(?C1)/I
# Line 3895  Failed: recursive call could loop indefi Line 3907  Failed: recursive call could loop indefi
3907    
3908  /^([^()]|\((?1)*\))*$/I  /^([^()]|\((?1)*\))*$/I
3909  Capturing subpattern count = 1  Capturing subpattern count = 1
3910    May match empty string
3911  Options: anchored  Options: anchored
3912  No first char  No first char
3913  No need char  No need char
# Line 4174  Named capturing subpatterns: Line 4187  Named capturing subpatterns:
4187    one     1    one     1
4188    three   3    three   3
4189    two     2    two     2
4190    May match empty string
4191  Options: anchored caseless  Options: anchored caseless
4192  No first char  No first char
4193  No need char  No need char
# Line 4273  Need char = 'z' Line 4287  Need char = 'z'
4287    
4288  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4289  Capturing subpattern count = 31  Capturing subpattern count = 31
4290    May match empty string
4291  Options: anchored dotall  Options: anchored dotall
4292  No first char  No first char
4293  No need char  No need char
# Line 4280  No need char Line 4295  No need char
4295  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4296  Capturing subpattern count = 31  Capturing subpattern count = 31
4297  Max back reference = 31  Max back reference = 31
4298    May match empty string
4299  Options: dotall  Options: dotall
4300  No first char  No first char
4301  No need char  No need char
# Line 4287  No need char Line 4303  No need char
4303  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4304  Capturing subpattern count = 32  Capturing subpattern count = 32
4305  Max back reference = 32  Max back reference = 32
4306    May match empty string
4307  Options: dotall  Options: dotall
4308  No first char  No first char
4309  No need char  No need char
# Line 4363  Minimum match() recursion limit = 6 Line 4380  Minimum match() recursion limit = 6
4380   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4381    aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
4382  Minimum match() limit = 32768  Minimum match() limit = 32768
4383  Minimum match() recursion limit = 42  Minimum match() recursion limit = 29
4384  No match  No match
4385    
4386  /(aaa(?C1)bbb|ab)/I  /(aaa(?C1)bbb|ab)/I
# Line 4438  Capturing subpattern count = 2 Line 4455  Capturing subpattern count = 2
4455  Named capturing subpatterns:  Named capturing subpatterns:
4456    Tes    1    Tes    1
4457    Test   2    Test   2
4458    May match empty string
4459  No options  No options
4460  No first char  No first char
4461  No need char  No need char
# Line 4456  Capturing subpattern count = 2 Line 4474  Capturing subpattern count = 2
4474  Named capturing subpatterns:  Named capturing subpatterns:
4475    Tes    2    Tes    2
4476    Test   1    Test   1
4477    May match empty string
4478  No options  No options
4479  No first char  No first char
4480  No need char  No need char
# Line 4533  Need char = ']' Line 4552  Need char = ']'
4552          End          End
4553  ------------------------------------------------------------------  ------------------------------------------------------------------
4554  Capturing subpattern count = 2  Capturing subpattern count = 2
4555    May match empty string
4556  No options  No options
4557  No first char  No first char
4558  No need char  No need char
# Line 4553  No need char Line 4573  No need char
4573          End          End
4574  ------------------------------------------------------------------  ------------------------------------------------------------------
4575  Capturing subpattern count = 2  Capturing subpattern count = 2
4576    May match empty string
4577  No options  No options
4578  No first char  No first char
4579  No need char  No need char
# Line 4584  No need char Line 4605  No need char
4605          End          End
4606  ------------------------------------------------------------------  ------------------------------------------------------------------
4607  Capturing subpattern count = 2  Capturing subpattern count = 2
4608    May match empty string
4609  No options  No options
4610  No first char  No first char
4611  No need char  No need char
# Line 4591  No need char Line 4613  No need char
4613  /[ab]{1}+/DZ  /[ab]{1}+/DZ
4614  ------------------------------------------------------------------  ------------------------------------------------------------------
4615          Bra          Bra
4616          Once          [ab]{1,1}+
         [ab]{1,1}  
         Ket  
4617          Ket          Ket
4618          End          End
4619  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 5305  No match Line 5325  No match
5325          Callout 255 0 21          Callout 255 0 21
5326          CBra 1          CBra 1
5327          Callout 255 1 9          Callout 255 1 9
5328          [ab]{1,4}          [ab]{1,4}+
5329          Callout 255 10 1          Callout 255 10 1
5330          c          c
5331          Callout 255 11 0          Callout 255 11 0
# Line 5318  No match Line 5338  No match
5338          Ket          Ket
5339          CBra 1          CBra 1
5340          Callout 255 1 9          Callout 255 1 9
5341          [ab]{1,4}          [ab]{1,4}+
5342          Callout 255 10 1          Callout 255 10 1
5343          c          c
5344          Callout 255 11 0          Callout 255 11 0
# Line 5331  No match Line 5351  No match
5351          Ket          Ket
5352          CBra 1          CBra 1
5353          Callout 255 1 9          Callout 255 1 9
5354          [ab]{1,4}          [ab]{1,4}+
5355          Callout 255 10 1          Callout 255 10 1
5356          c          c
5357          Callout 255 11 0          Callout 255 11 0
# Line 5344  No match Line 5364  No match
5364          Ket          Ket
5365          CBra 1          CBra 1
5366          Callout 255 1 9          Callout 255 1 9
5367          [ab]{1,4}          [ab]{1,4}+
5368          Callout 255 10 1          Callout 255 10 1
5369          c          c
5370          Callout 255 11 0          Callout 255 11 0
# Line 5358  No match Line 5378  No match
5378          Braminzero          Braminzero
5379          CBra 1          CBra 1
5380          Callout 255 1 9          Callout 255 1 9
5381          [ab]{1,4}          [ab]{1,4}+
5382          Callout 255 10 1          Callout 255 10 1
5383          c          c
5384          Callout 255 11 0          Callout 255 11 0
# Line 5411  Need char = '3' Line 5431  Need char = '3'
5431    
5432  /\b.*/I  /\b.*/I
5433  Capturing subpattern count = 0  Capturing subpattern count = 0
5434    Max lookbehind = 1
5435    May match empty string
5436  No options  No options
5437  No first char  No first char
5438  No need char  No need char
 Max lookbehind = 1  
5439    ab cd\>1    ab cd\>1
5440   0:  cd   0:  cd
5441    
5442  /\b.*/Is  /\b.*/Is
5443  Capturing subpattern count = 0  Capturing subpattern count = 0
5444    Max lookbehind = 1
5445    May match empty string
5446  Options: dotall  Options: dotall
5447  No first char  No first char
5448  No need char  No need char
 Max lookbehind = 1  
5449    ab cd\>1    ab cd\>1
5450   0:  cd   0:  cd
5451    
5452  /(?!.bcd).*/I  /(?!.bcd).*/I
5453  Capturing subpattern count = 0  Capturing subpattern count = 0
5454    May match empty string
5455  No options  No options
5456  No first char  No first char
5457  No need char  No need char
# Line 6017  Matched, but too many substrings Line 6040  Matched, but too many substrings
6040    
6041  /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
6042  Capturing subpattern count = 0  Capturing subpattern count = 0
6043    May match empty string
6044  No options  No options
6045  No first char  No first char
6046  No need char  No need char
# Line 6029  No need char Line 6053  No need char
6053    
6054  /[^()]*(?:\((?>(?R))\)[^()]*)*/I  /[^()]*(?:\((?>(?R))\)[^()]*)*/I
6055  Capturing subpattern count = 0  Capturing subpattern count = 0
6056    May match empty string
6057  No options  No options
6058  No first char  No first char
6059  No need char  No need char
# Line 6039  No need char Line 6064  No need char
6064    
6065  /[^()]*(?:\((?R)\))*[^()]*/I  /[^()]*(?:\((?R)\))*[^()]*/I
6066  Capturing subpattern count = 0  Capturing subpattern count = 0
6067    May match empty string
6068  No options  No options
6069  No first char  No first char
6070  No need char  No need char
# Line 6049  No need char Line 6075  No need char
6075    
6076  /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
6077  Capturing subpattern count = 0  Capturing subpattern count = 0
6078    May match empty string
6079  No options  No options
6080  No first char  No first char
6081  No need char  No need char
# Line 6061  No need char Line 6088  No need char
6088    
6089  /(?:\((?R)\))|[^()]*/I  /(?:\((?R)\))|[^()]*/I
6090  Capturing subpattern count = 0  Capturing subpattern count = 0
6091    May match empty string
6092  No options  No options
6093  No first char  No first char
6094  No need char  No need char
# Line 6110  no parentheses with name "Z" Line 6138  no parentheses with name "Z"
6138   2: a1   2: a1
6139  copy substring Z failed -7  copy substring Z failed -7
6140    C a1 (2) A    C a1 (2) A
6141    
6142    /(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/IJ
6143    Capturing subpattern count = 3
6144    Named capturing subpatterns:
6145      a   1
6146      a   3
6147      b   2
6148    May match empty string
6149    Options: dupnames
6150    No first char
6151    No need char
6152    
6153  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
6154  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 6320  Need char = 'X' Line 6359  Need char = 'X'
6359   1: X   1: X
6360    
6361  /(?:(?(2y)a|b)(X))+/I  /(?:(?(2y)a|b)(X))+/I
6362  Failed: reference to non-existent subpattern at offset 9  Failed: malformed number or name after (?( at offset 7
6363    
6364  /(?:(?(ZA)a|b)(?P<ZZ>X))+/I  /(?:(?(ZA)a|b)(?P<ZZ>X))+/I
6365  Failed: reference to non-existent subpattern at offset 9  Failed: reference to non-existent subpattern at offset 9
# Line 6392  No options Line 6431  No options
6431  No first char  No first char
6432  Need char = ','  Need char = ','
6433  Subject length lower bound = 1  Subject length lower bound = 1
6434  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 ,
6435      \x0b,\x0b      \x0b,\x0b
6436   0: ,   0: \x0b,\x0b
6437      \x0c,\x0d      \x0c,\x0d
6438   0: \x0c,\x0d   0: \x0c,\x0d
6439    
# Line 6503  No match Line 6542  No match
6542  No match  No match
6543    
6544  /^abc/Im<bad>  /^abc/Im<bad>
6545  Unknown newline type at: <bad>  Unknown modifier at: <bad>
6546    
6547    
6548  /abc/I  /abc/I
# Line 6512  No options Line 6551  No options
6551  First char = 'a'  First char = 'a'
6552  Need char = 'c'  Need char = 'c'
6553      xyz\rabc\<bad>      xyz\rabc\<bad>
6554  Unknown newline type at: <bad>  Unknown escape sequence at: <bad>
6555      abc      abc
6556   0: abc   0: abc
6557    
6558  /.*/I<lf>  /.*/I<lf>
6559  Capturing subpattern count = 0  Capturing subpattern count = 0
6560    May match empty string
6561  Options:  Options:
6562  Forced newline sequence: LF  Forced newline sequence: LF
6563  First char at start or follows newline  First char at start or follows newline
# Line 6559  Need char = 'f' Line 6599  Need char = 'f'
6599    
6600  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6601  Capturing subpattern count = 1  Capturing subpattern count = 1
6602    May match empty string
6603  No options  No options
6604  No first char  No first char
6605  No need char  No need char
# Line 7482  Matched, but too many substrings Line 7523  Matched, but too many substrings
7523  /a*[^a]/BZ  /a*[^a]/BZ
7524  ------------------------------------------------------------------  ------------------------------------------------------------------
7525          Bra          Bra
7526          a*          a*+
7527          [^a]          [^a]
7528          Ket          Ket
7529          End          End
# Line 7624  No match Line 7665  No match
7665  ------------------------------------------------------------------  ------------------------------------------------------------------
7666          Bra          Bra
7667          ^          ^
7668          [a-z]+          [a-z]++
7669          Ket          Ket
7670          End          End
7671  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7665  No match Line 7706  No match
7706          ^          ^
7707          CBra 1          CBra 1
7708          Cond          Cond
7709        2 Cond nref        2 Cond ref
7710          y          y
7711          Ket          Ket
7712          [()]          [()]
# Line 7725  Named capturing subpatterns: Line 7766  Named capturing subpatterns:
7766    one     1    one     1
7767    three   3    three   3
7768    two     2    two     2
7769    May match empty string
7770  Options: anchored caseless  Options: anchored caseless
7771  No first char  No first char
7772  No need char  No need char
# Line 7824  Failed: reference to non-existent subpat Line 7866  Failed: reference to non-existent subpat
7866   1: abcabc1Xabc2XabcX   1: abcabc1Xabc2XabcX
7867   2: abcabc1Xabc2XabcX   2: abcabc1Xabc2XabcX
7868    
7869  /(?<A> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x  /(?<A> (?'B' abc (?(R) (?(R&C)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
7870  Failed: reference to non-existent subpattern at offset 29  Failed: reference to non-existent subpattern at offset 29
7871    
 /(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x  
     abcabc1Xabc2XabcXabcabc  
  0: abcabc1Xabc2XabcX  
  1: abcabc1Xabc2XabcX  
  2: abcabc1Xabc2XabcX  
   
7872  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
7873  Failed: DEFINE group contains more than one branch at offset 22  Failed: DEFINE group contains more than one branch at offset 22
7874    
# Line 8056  Failed: a numbered reference must not be Line 8092  Failed: a numbered reference must not be
8092  /^(a)\g{3/  /^(a)\g{3/
8093  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
8094    
8095  /^(a)\g{4a}/  /^(a)\g{aa}/
8096  Failed: reference to non-existent subpattern at offset 9  Failed: reference to non-existent subpattern at offset 9
8097    
8098  /^a.b/<lf>  /^a.b/<lf>
# Line 8561  No match Line 8597  No match
8597          \d          \d
8598          \v++          \v++
8599          \w          \w
8600          \v+          \v++
8601          \S          \S
8602          \v++          \v++
8603          \V          \V
# Line 8659  No match Line 8695  No match
8695   +6 ^      ^    (*FAIL)   +6 ^      ^    (*FAIL)
8696   +6 ^     ^     (*FAIL)   +6 ^     ^     (*FAIL)
8697   +6 ^    ^      (*FAIL)   +6 ^    ^      (*FAIL)
  +4 ^  ^        c+  
  +2 ^ ^         b?  
  +4 ^ ^         c+  
  +2 ^^          b?  
  +4 ^^          c+  
8698   +0  ^          a+   +0  ^          a+
8699   +2  ^ ^        b?   +2  ^ ^        b?
8700   +4  ^  ^       c+   +4  ^  ^       c+
8701   +6  ^     ^    (*FAIL)   +6  ^     ^    (*FAIL)
8702   +6  ^    ^     (*FAIL)   +6  ^    ^     (*FAIL)
8703   +6  ^   ^      (*FAIL)   +6  ^   ^      (*FAIL)
  +4  ^ ^        c+  
  +2  ^^         b?  
  +4  ^^         c+  
8704   +0   ^         a+   +0   ^         a+
8705   +2   ^^        b?   +2   ^^        b?
8706   +4   ^ ^       c+   +4   ^ ^       c+
8707   +6   ^    ^    (*FAIL)   +6   ^    ^    (*FAIL)
8708   +6   ^   ^     (*FAIL)   +6   ^   ^     (*FAIL)
8709   +6   ^  ^      (*FAIL)   +6   ^  ^      (*FAIL)
  +4   ^^        c+  
8710  No match  No match
8711    
8712  /a+b?(*PRUNE)c+(*FAIL)/C  /a+b?(*PRUNE)c+(*FAIL)/C
# Line 8803  No match Line 8830  No match
8830   1: \x0a   1: \x0a
8831    
8832  /a(*CR)b/  /a(*CR)b/
8833  Failed: (*VERB) not recognized at offset 5  Failed: (*VERB) not recognized or malformed at offset 5
8834    
8835  /(*CR)a.b/  /(*CR)a.b/
8836      a\nb      a\nb
# Line 9248  No match Line 9275  No match
9275      ab      ab
9276  No match  No match
9277    
9278  /a(?!)+b/  /a(?!)b/BZ
9279  Failed: nothing to repeat at offset 5  ------------------------------------------------------------------
9280            Bra
9281            a
9282            *FAIL
9283            b
9284            Ket
9285            End
9286    ------------------------------------------------------------------
9287    
9288    /(?!)?a/BZ
9289    ------------------------------------------------------------------
9290            Bra
9291            Brazero
9292            Assert not
9293            Ket
9294            a
9295            Ket
9296            End
9297    ------------------------------------------------------------------
9298        ab
9299     0: a
9300    
9301  /a(*FAIL)+b/  /a(*FAIL)+b/
9302  Failed: nothing to repeat at offset 8  Failed: nothing to repeat at offset 8
# Line 9264  Starting byte set: x y z Line 9311  Starting byte set: x y z
9311    
9312  /(?(?=.*b)b|^)/CI  /(?(?=.*b)b|^)/CI
9313  Capturing subpattern count = 0  Capturing subpattern count = 0
9314    May match empty string
9315  Options:  Options:
9316  No first char  No first char
9317  No need char  No need char
# Line 9276  No need char Line 9324  No need char
9324   +7 ^ ^     b   +7 ^ ^     b
9325   +7 ^^      b   +7 ^^      b
9326   +7 ^       b   +7 ^       b
9327    +11 ^       ^
9328  +12 ^       )  +12 ^       )
9329  +13 ^  +13 ^
9330   0:   0:
# Line 9367  No match Line 9416  No match
9416  No match  No match
9417    
9418  /(*NO_START_OPT)xyz/C  /(*NO_START_OPT)xyz/C
9419    abcxyz    abcxyz
9420  --->abcxyz  --->abcxyz
9421  +15 ^          x  +15 ^          x
9422  +15  ^         x  +15  ^         x
# Line 9377  No match Line 9426  No match
9426  +17    ^ ^     z  +17    ^ ^     z
9427  +18    ^  ^  +18    ^  ^
9428   0: xyz   0: xyz
9429    
9430    /(*NO_AUTO_POSSESS)a+b/BZ
9431    ------------------------------------------------------------------
9432            Bra
9433            a+
9434            b
9435            Ket
9436            End
9437    ------------------------------------------------------------------
9438    
9439  /xyz/CY  /xyz/CY
9440    abcxyz    abcxyz
# Line 9406  No match Line 9464  No match
9464   +3 ^ ^      (?(?=[a])[^"])   +3 ^ ^      (?(?=[a])[^"])
9465   +5 ^ ^      (?=[a])   +5 ^ ^      (?=[a])
9466   +8 ^ ^      [a]   +8 ^ ^      [a]
9467    +17 ^ ^      |
9468  +21 ^ ^      "  +21 ^ ^      "
9469  +18 ^ ^      b  +18 ^ ^      b
9470  +19 ^  ^     )  +19 ^  ^     )
9471   +3 ^  ^     (?(?=[a])[^"])   +3 ^  ^     (?(?=[a])[^"])
9472   +5 ^  ^     (?=[a])   +5 ^  ^     (?=[a])
9473   +8 ^  ^     [a]   +8 ^  ^     [a]
9474    +17 ^  ^     |
9475  +21 ^  ^     "  +21 ^  ^     "
9476  +22 ^   ^    $  +22 ^   ^    $
9477  +23 ^   ^  +23 ^   ^
# Line 9719  Partial match: abc12 Line 9779  Partial match: abc12
9779      xyzabc123pqr      xyzabc123pqr
9780   0: 123   0: 123
9781      xyzabc12\P      xyzabc12\P
9782  Partial match: abc12  Partial match at offset 6: abc12
9783      xyzabc12\P\P      xyzabc12\P\P
9784  Partial match: abc12  Partial match at offset 6: abc12
9785    
9786  /\babc\b/  /\babc\b/
9787      +++abc+++      +++abc+++
9788   0: abc   0: abc
9789      +++ab\P      +++ab\P
9790  Partial match: +ab  Partial match at offset 3: +ab
9791      +++ab\P\P      +++ab\P\P
9792  Partial match: +ab  Partial match at offset 3: +ab
9793    
9794  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9795  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 10110  No set of starting bytes Line 10170  No set of starting bytes
10170  "(?>.*/)foo"SI  "(?>.*/)foo"SI
10171  Capturing subpattern count = 0  Capturing subpattern count = 0
10172  No options  No options
10173  First char at start or follows newline  No first char
10174  Need char = 'o'  Need char = 'o'
10175  Subject length lower bound = 4  Subject length lower bound = 4
10176  No set of starting bytes  No set of starting bytes
# Line 10172  No set of starting bytes Line 10232  No set of starting bytes
10232  Capturing subpattern count = 1  Capturing subpattern count = 1
10233  Named capturing subpatterns:  Named capturing subpatterns:
10234    a   1    a   1
   a   1  
10235  No options  No options
10236  No first char  No first char
10237  No need char  No need char
# Line 10245  No match Line 10304  No match
10304          Ket          Ket
10305          Ket          Ket
10306          Cond          Cond
10307        4 Cond nref          Cond ref <D>2
10308          X          X
10309          Alt          Alt
10310          Y          Y
# Line 10291  No match Line 10350  No match
10350          CBra 4          CBra 4
10351          d          d
10352          Cond          Cond
10353          Cond nrecurse 1          Cond recurse <A>2
10354          $          $
10355          Alt          Alt
10356          Recurse          Recurse
# Line 10353  Partial match: abca Line 10412  Partial match: abca
10412      xxxxabcde\P\P      xxxxabcde\P\P
10413  Partial match: abcde  Partial match: abcde
10414    
10415  /-- This is not in the Perl >= 5.10 test because Perl seems currently to be  /-- This is not in the Perl-compatible test because Perl seems currently to be
10416      broken and not behaving as specified in that it *does* bumpalong after      broken and not behaving as specified in that it *does* bumpalong after
10417      hitting (*COMMIT). --/      hitting (*COMMIT). --/
10418    
# Line 10549  No match Line 10608  No match
10608          End          End
10609  ------------------------------------------------------------------  ------------------------------------------------------------------
10610    
10611  / -- The first four of these are not in the Perl >= 5.10 test because Perl  / -- This one is here because Perl gives the match as "b" rather than "ab". I
      documents that the use of \K in assertions is "not well defined". The  
      last is here because Perl gives the match as "b" rather than "ab". I  
10612       believe this to be a Perl bug. --/       believe this to be a Perl bug. --/
10613    
 /(?=a\Kb)ab/  
     ab  
  0: b  
   
 /(?!a\Kb)ac/  
     ac  
  0: ac  
   
 /^abc(?<=b\Kc)d/  
     abcd  
  0: cd  
   
 /^abc(?<!b\Kq)d/  
     abcd  
  0: abcd  
   
10614  /(?>a\Kb)z|(ab)/  /(?>a\Kb)z|(ab)/
10615      ab      ab
10616   0: ab   0: ab
10617   1: ab   1: ab
10618    
 /----------------------/  
   
10619  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10620  Failed: recursive call could loop indefinitely at offset 31  Failed: recursive call could loop indefinitely at offset 31
10621    
# Line 10596  Failed: an argument is not allowed for ( Line 10635  Failed: an argument is not allowed for (
10635      ACABX      ACABX
10636  No match  No match
10637    
10638  /--- These should be different, but in Perl 5.11 are not, which I think  /--- These should be different, but in Perl they are not, which I think
10639       is a bug in Perl. ---/       is a bug in Perl. ---/
10640    
10641  /A(*THEN)B|A(*THEN)C/K  /A(*THEN)B|A(*THEN)C/K
# Line 10607  No match Line 10646  No match
10646      AC      AC
10647  No match  No match
10648    
 /--- This should fail; the SKIP advances by one, but when we get to AC, the  
      PRUNE kills it. Perl behaves differently. ---/  
   
 /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK  
     AAAC  
 No match, mark = A  
   
10649  /--- Mark names can be duplicated. Perl doesn't give a mark for this one,  /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10650  though PCRE does. ---/  though PCRE does. ---/
10651    
# Line 10647  No match Line 10679  No match
10679      abcccd      abcccd
10680  No match  No match
10681    
10682  /--- Perl 5.11 gets some of these wrong ---/  /--- Perl gets some of these wrong ---/
10683    
10684  /(?>.(*ACCEPT))*?5/  /(?>.(*ACCEPT))*?5/
10685      abcde      abcde
# Line 10755  No match Line 10787  No match
10787  /\s*\R/BZ  /\s*\R/BZ
10788  ------------------------------------------------------------------  ------------------------------------------------------------------
10789          Bra          Bra
10790          \s*+          \s*
10791          \R          \R
10792          Ket          Ket
10793          End          End
10794  ------------------------------------------------------------------  ------------------------------------------------------------------
10795        \x20\x0a
10796     0:  \x0a
10797        \x20\x0d
10798     0:  \x0d
10799        \x20\x0d\x0a
10800     0:  \x0d\x0a
10801    
10802  /-- Perl treats this one differently, not failing the second string. I believe  /\S*\R/BZ
10803      that is a bug in Perl. --/  ------------------------------------------------------------------
10804            Bra
10805            \S*+
10806            \R
10807            Ket
10808            End
10809    ------------------------------------------------------------------
10810        a\x0a
10811     0: a\x0a
10812    
10813  /^((abc|abcx)(*THEN)y|abcd)/  /X\h*\R/BZ
10814      abcd  ------------------------------------------------------------------
10815   0: abcd          Bra
10816   1: abcd          X
10817      *** Failers          \h*+
10818  No match          \R
10819      abcxy          Ket
10820            End
10821    ------------------------------------------------------------------
10822        X\x20\x0a
10823     0: X \x0a
10824    
10825    /X\H*\R/BZ
10826    ------------------------------------------------------------------
10827            Bra
10828            X
10829            \H*
10830            \R
10831            Ket
10832            End
10833    ------------------------------------------------------------------
10834        X\x0d\x0a
10835     0: X\x0d\x0a
10836    
10837    /X\H+\R/BZ
10838    ------------------------------------------------------------------
10839            Bra
10840            X
10841            \H+
10842            \R
10843            Ket
10844            End
10845    ------------------------------------------------------------------
10846        X\x0d\x0a
10847     0: X\x0d\x0a
10848    
10849    /X\H++\R/BZ
10850    ------------------------------------------------------------------
10851            Bra
10852            X
10853            \H++
10854            \R
10855            Ket
10856            End
10857    ------------------------------------------------------------------
10858        X\x0d\x0a
10859  No match  No match
10860    
10861  /(?<=abc)def/  /(?<=abc)def/
10862      abc\P\P      abc\P\P
10863  Partial match: abc  Partial match at offset 3: abc
10864    
10865  /abc$/  /abc$/
10866      abc      abc
# Line 11022  No need char Line 11107  No need char
11107    
11108  /(^ab|^)+/I  /(^ab|^)+/I
11109  Capturing subpattern count = 1  Capturing subpattern count = 1
11110    May match empty string
11111  Options: anchored  Options: anchored
11112  No first char  No first char
11113  No need char  No need char
11114    
11115  /(^ab|^)++/I  /(^ab|^)++/I
11116  Capturing subpattern count = 1  Capturing subpattern count = 1
11117    May match empty string
11118  Options: anchored  Options: anchored
11119  No first char  No first char
11120  No need char  No need char
# Line 11046  No need char Line 11133  No need char
11133    
11134  /(?:^ab|^)+/I  /(?:^ab|^)+/I
11135  Capturing subpattern count = 0  Capturing subpattern count = 0
11136    May match empty string
11137  Options: anchored  Options: anchored
11138  No first char  No first char
11139  No need char  No need char
11140    
11141  /(?:^ab|^)++/I  /(?:^ab|^)++/I
11142  Capturing subpattern count = 0  Capturing subpattern count = 0
11143    May match empty string
11144  Options: anchored  Options: anchored
11145  No first char  No first char
11146  No need char  No need char
# Line 11070  Need char = 'b' Line 11159  Need char = 'b'
11159    
11160  /(.*ab|.*)+/I  /(.*ab|.*)+/I
11161  Capturing subpattern count = 1  Capturing subpattern count = 1
11162    May match empty string
11163  No options  No options
11164  First char at start or follows newline  First char at start or follows newline
11165  No need char  No need char
11166    
11167  /(.*ab|.*)++/I  /(.*ab|.*)++/I
11168  Capturing subpattern count = 1  Capturing subpattern count = 1
11169    May match empty string
11170  No options  No options
11171  First char at start or follows newline  First char at start or follows newline
11172  No need char  No need char
# Line 11094  Need char = 'b' Line 11185  Need char = 'b'
11185    
11186  /(?:.*ab|.*)+/I  /(?:.*ab|.*)+/I
11187  Capturing subpattern count = 0  Capturing subpattern count = 0
11188    May match empty string
11189  No options  No options
11190  First char at start or follows newline  First char at start or follows newline
11191  No need char  No need char
11192    
11193  /(?:.*ab|.*)++/I  /(?:.*ab|.*)++/I
11194  Capturing subpattern count = 0  Capturing subpattern count = 0
11195    May match empty string
11196  No options  No options
11197  First char at start or follows newline  First char at start or follows newline
11198  No need char  No need char
# Line 11254  No match Line 11347  No match
11347    
11348  /(a)b|ac/++SS  /(a)b|ac/++SS
11349      ac\O3      ac\O3
 Matched, but too many substrings  
11350   0: ac   0: ac
11351   0+   0+
11352    
# Line 11506  Matched, but too many substrings Line 11598  Matched, but too many substrings
11598          Assert not          Assert not
11599          a          a
11600          Ket          Ket
11601          \w+          \w++
11602          Ket          Ket
11603          End          End
11604  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 11614  No match Line 11706  No match
11706    
11707  /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS  /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11708  Capturing subpattern count = 0  Capturing subpattern count = 0
11709    Max lookbehind = 1
11710  No options  No options
11711  First char = 't'  First char = 't'
11712  Need char = 't'  Need char = 't'
 Max lookbehind = 1  
11713  Subject length lower bound = 18  Subject length lower bound = 18
11714  No set of starting bytes  No set of starting bytes
11715    
11716  /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS  /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11717  Capturing subpattern count = 0  Capturing subpattern count = 0
11718    Max lookbehind = 1
11719  No options  No options
11720  No first char  No first char
11721  No need char  No need char
 Max lookbehind = 1  
11722  Subject length lower bound = 8  Subject length lower bound = 8
11723  Starting byte set: < o t u  Starting byte set: < o t u
11724    
11725  /a(*SKIP)c|b(*ACCEPT)|/+SI  /a(*SKIP)c|b(*ACCEPT)|/+S!I
11726  Capturing subpattern count = 0  Capturing subpattern count = 0
11727    May match empty string
11728  No options  No options
11729  No first char  No first char
11730  No need char  No need char
11731  Study returned NULL  Subject length lower bound = -1
11732    No set of starting bytes
11733      a      a
11734   0:   0:
11735   0+   0+
# Line 11696  Minimum match() limit = 86 Line 11790  Minimum match() limit = 86
11790  Minimum match() recursion limit = 45  Minimum match() recursion limit = 45
11791   0: abbbbbbbbbbbbbbbbbbbbba   0: abbbbbbbbbbbbbbbbbbbbba
11792    
11793  /-- These tests are in agreement with development Perl 5.015, which has fixed  /^(?>a+)(?>(z+))\w/BZ
11794      some things, but they don't all work with 5.012, so they aren't in the  ------------------------------------------------------------------
11795      Perl-compatible tests. Those after the first come from Perl's own test          Bra
11796      files. --/          ^
11797            Once_NC
11798  /^((yes|no)(*THEN)(*F))?/          a++
11799    yes          Ket
11800  No match          Once
11801            CBra 1
11802  /(A (.*)   C? (*THEN)  | A D) (*FAIL)/x          z++
11803  AbcdCBefgBhiBqz          Ket
11804            Ket
11805            \w
11806            Ket
11807            End
11808    ------------------------------------------------------------------
11809        aaaazzzzb
11810     0: aaaazzzzb
11811     1: zzzz
11812        ** Failers
11813  No match  No match
11814        aazz
 /(A (.*)   C? (*THEN)  | A D) z/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   C? (*THEN)  | A D) \s* (*FAIL)/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   C? (*THEN)  | A D) \s* z/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   (?:C|) (*THEN)  | A D) (*FAIL)/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   (?:C|) (*THEN)  | A D) z/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   C{0,6} (*THEN)  | A D) (*FAIL)/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   C{0,6} (*THEN)  | A D) z/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   (CE){0,6} (*THEN)  | A D) (*FAIL)/x  
 AbcdCEBefgBhiBqz  
 No match  
   
 /(A (.*)   (CE){0,6} (*THEN)  | A D) z/x  
 AbcdCEBefgBhiBqz  
 No match  
   
 /(A (.*)   (CE*){0,6} (*THEN)  | A D) (*FAIL)/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   (CE*){0,6} (*THEN)  | A D) z/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /-----------------------------------------------/  
   
 /^(?>a+)(?>(z+))\w/BZ  
 ------------------------------------------------------------------  
         Bra  
         ^  
         Once_NC  
         a+  
         Ket  
         Once  
         CBra 1  
         z+  
         Ket  
         Ket  
         \w  
         Ket  
         End  
 ------------------------------------------------------------------  
     aaaazzzzb  
  0: aaaazzzzb  
  1: zzzz  
     ** Failers  
 No match  
     aazz  
11815  No match  No match
11816    
11817  /(.)(\1|a(?2))/  /(.)(\1|a(?2))/
# Line 11823  No match Line 11858  No match
11858    
11859  /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/  /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11860       \Maabbccddee       \Maabbccddee
11861  Minimum match() limit = 12  Minimum match() limit = 7
11862  Minimum match() recursion limit = 3  Minimum match() recursion limit = 2
11863   0: aabbccddee   0: aabbccddee
11864    
11865  /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/  /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11866       \Maabbccddee       \Maabbccddee
11867  Minimum match() limit = 22  Minimum match() limit = 17
11868  Minimum match() recursion limit = 21  Minimum match() recursion limit = 16
11869   0: aabbccddee   0: aabbccddee
11870   1: aa   1: aa
11871   2: bb   2: bb
# Line 11840  Minimum match() recursion limit = 21 Line 11875  Minimum match() recursion limit = 21
11875    
11876  /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/  /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11877       \Maabbccddee       \Maabbccddee
11878  Minimum match() limit = 18  Minimum match() limit = 13
11879  Minimum match() recursion limit = 13  Minimum match() recursion limit = 10
11880   0: aabbccddee   0: aabbccddee
11881   1: aa   1: aa
11882   2: cc   2: cc
# Line 11932  No match Line 11967  No match
11967  Failed: \N is not supported in a class at offset 3  Failed: \N is not supported in a class at offset 3
11968    
11969  /a[B-\Nc]/  /a[B-\Nc]/
11970  Failed: \N is not supported in a class at offset 5  Failed: invalid range in character class at offset 5
11971    
11972    /a[B\Nc]/
11973    Failed: \N is not supported in a class at offset 4
11974    
11975  /(a)(?2){0,1999}?(b)/  /(a)(?2){0,1999}?(b)/
11976    
# Line 12271  Partial match: \x0d\x0d Line 12309  Partial match: \x0d\x0d
12309      \r\r\r\P\P      \r\r\r\P\P
12310   0: \x0d\x0d   0: \x0d\x0d
12311    
12312  /-- This one is here because Perl does not match: it seems to allow the COMMIT  "AB(C(D))(E(F))?(?(?=\2)(?=\4))"
12313  to escape from the assertion. --/      ABCDGHI\O03
12314    Matched, but too many substrings
12315     0: ABCD
12316    
12317    /-- These are all run as real matches in test 1; here we are just checking the
12318    settings of the anchored and startline bits. --/
12319    
12320  /(?=a(*COMMIT)b|ac)ac|ac/  /(?>.*?a)(?<=ba)/I
12321      ac  Capturing subpattern count = 0
12322    Max lookbehind = 2
12323    No options
12324    No first char
12325    Need char = 'a'
12326    
12327    /(?:.*?a)(?<=ba)/I
12328    Capturing subpattern count = 0
12329    Max lookbehind = 2
12330    No options
12331    First char at start or follows newline
12332    Need char = 'a'
12333    
12334    /.*?a(*PRUNE)b/I
12335    Capturing subpattern count = 0
12336    No options
12337    No first char
12338    Need char = 'b'
12339    
12340    /.*?a(*PRUNE)b/sI
12341    Capturing subpattern count = 0
12342    Options: dotall
12343    No first char
12344    Need char = 'b'
12345    
12346    /^a(*PRUNE)b/sI
12347    Capturing subpattern count = 0
12348    Options: anchored dotall
12349    No first char
12350    No need char
12351    
12352    /.*?a(*SKIP)b/I
12353    Capturing subpattern count = 0
12354    No options
12355    No first char
12356    Need char = 'b'
12357    
12358    /(?>.*?a)b/sI
12359    Capturing subpattern count = 0
12360    Options: dotall
12361    No first char
12362    Need char = 'b'
12363    
12364    /(?>.*?a)b/I
12365    Capturing subpattern count = 0
12366    No options
12367    No first char
12368    Need char = 'b'
12369    
12370    /(?>^a)b/sI
12371    Capturing subpattern count = 0
12372    Options: anchored dotall
12373    No first char
12374    No need char
12375    
12376    /(?>.*?)(?<=(abcd)|(wxyz))/I
12377    Capturing subpattern count = 2
12378    Max lookbehind = 4
12379    May match empty string
12380    No options
12381    No first char
12382    No need char
12383    
12384    /(?>.*)(?<=(abcd)|(wxyz))/I
12385    Capturing subpattern count = 2
12386    Max lookbehind = 4
12387    May match empty string
12388    No options
12389    No first char
12390    No need char
12391    
12392    "(?>.*)foo"I
12393    Capturing subpattern count = 0
12394    No options
12395    No first char
12396    Need char = 'o'
12397    
12398    "(?>.*?)foo"I
12399    Capturing subpattern count = 0
12400    No options
12401    No first char
12402    Need char = 'o'
12403    
12404    /(?>^abc)/mI
12405    Capturing subpattern count = 0
12406    Options: multiline
12407    First char at start or follows newline
12408    Need char = 'c'
12409    
12410    /(?>.*abc)/mI
12411    Capturing subpattern count = 0
12412    Options: multiline
12413    No first char
12414    Need char = 'c'
12415    
12416    /(?:.*abc)/mI
12417    Capturing subpattern count = 0
12418    Options: multiline
12419    First char at start or follows newline
12420    Need char = 'c'
12421    
12422    /-- Check PCRE_STUDY_EXTRA_NEEDED --/
12423    
12424    /.?/S-I
12425    Capturing subpattern count = 0
12426    May match empty string
12427    No options
12428    No first char
12429    No need char
12430    Study returned NULL
12431    
12432    /.?/S!I
12433    Capturing subpattern count = 0
12434    May match empty string
12435    No options
12436    No first char
12437    No need char
12438    Subject length lower bound = -1
12439    No set of starting bytes
12440    
12441    /(?:(a)+(?C1)bb|aa(?C2)b)/
12442        aab\C+
12443    Callout 1: last capture = 1
12444     0: <unset>
12445     1: a
12446    --->aab
12447        ^ ^     b
12448    Callout 1: last capture = 1
12449     0: <unset>
12450     1: a
12451    --->aab
12452        ^^      b
12453    Callout 2: last capture = -1
12454     0: <unset>
12455    --->aab
12456        ^ ^     b
12457     0: aab
12458    
12459    /(?:(a)++(?C1)bb|aa(?C2)b)/
12460        aab\C+
12461    Callout 1: last capture = 1
12462     0: <unset>
12463     1: a
12464    --->aab
12465        ^ ^     b
12466    Callout 2: last capture = -1
12467     0: <unset>
12468    --->aab
12469        ^ ^     b
12470     0: aab
12471    
12472    /(?:(?>(a))(?C1)bb|aa(?C2)b)/
12473        aab\C+
12474    Callout 1: last capture = 1
12475     0: <unset>
12476     1: a
12477    --->aab
12478        ^^      b
12479    Callout 2: last capture = -1
12480     0: <unset>
12481    --->aab
12482        ^ ^     b
12483     0: aab
12484    
12485    /(?:(?1)(?C1)x|ab(?C2))((a)){0}/
12486        aab\C+
12487    Callout 1: last capture = -1
12488     0: <unset>
12489    --->aab
12490        ^^      x
12491    Callout 1: last capture = -1
12492     0: <unset>
12493    --->aab
12494         ^^     x
12495    Callout 2: last capture = -1
12496     0: <unset>
12497    --->aab
12498         ^ ^    )
12499     0: ab
12500    
12501    /(?1)(?C1)((a)(?C2)){0}/
12502        aab\C+
12503    Callout 2: last capture = 2
12504     0: <unset>
12505     1: <unset>
12506     2: a
12507    --->aab
12508        ^^      )
12509    Callout 1: last capture = -1
12510     0: <unset>
12511    --->aab
12512        ^^      ((a)(?C2)){0}
12513     0: a
12514    
12515    /(?:(a)+(?C1)bb|aa(?C2)b)++/
12516        aab\C+
12517    Callout 1: last capture = 1
12518     0: <unset>
12519     1: a
12520    --->aab
12521        ^ ^     b
12522    Callout 1: last capture = 1
12523     0: <unset>
12524     1: a
12525    --->aab
12526        ^^      b
12527    Callout 2: last capture = -1
12528     0: <unset>
12529    --->aab
12530        ^ ^     b
12531     0: aab
12532        aab\C+\O2
12533    Callout 1: last capture = 1
12534     0: <unset>
12535    --->aab
12536        ^ ^     b
12537    Callout 1: last capture = 1
12538     0: <unset>
12539    --->aab
12540        ^^      b
12541    Callout 2: last capture = -1
12542     0: <unset>
12543    --->aab
12544        ^ ^     b
12545     0: aab
12546    
12547    /(ab)x|ab/
12548        ab\O3
12549     0: ab
12550        ab\O2
12551     0: ab
12552    
12553    /(ab)/
12554        ab\O3
12555    Matched, but too many substrings
12556     0: ab
12557        ab\O2
12558    Matched, but too many substrings
12559     0: ab
12560    
12561    /(?<=123)(*MARK:xx)abc/K
12562        xxxx123a\P\P
12563    Partial match at offset 7, mark=xx: 123a
12564        xxxx123a\P
12565    Partial match at offset 7, mark=xx: 123a
12566    
12567    /123\Kabc/
12568        xxxx123a\P\P
12569    Partial match: 123a
12570        xxxx123a\P
12571    Partial match: 123a
12572    
12573    /^(?(?=a)aa|bb)/C
12574        bb
12575    --->bb
12576     +0 ^      ^
12577     +1 ^      (?(?=a)aa|bb)
12578     +3 ^      (?=a)
12579     +6 ^      a
12580    +11 ^      b
12581    +12 ^^     b
12582    +13 ^ ^    )
12583    +14 ^ ^
12584     0: bb
12585    
12586    /(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/
12587        bb
12588    --->bb
12589      1 ^      ^
12590      2 ^      (?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))
12591     99 ^      (?=(?C3)a(?C4))
12592      3 ^      a
12593      8 ^      b
12594      9 ^^     b
12595     10 ^ ^    )
12596     11 ^ ^
12597     0: bb
12598    
12599    /-- Perl seems to have a bug with this one --/
12600    
12601    /aaaaa(*COMMIT)(*PRUNE)b|a+c/
12602        aaaaaac
12603     0: aaaac
12604    
12605    /-- Here are some that Perl treats differently because of the way it handles
12606    backtracking verbs. --/
12607    
12608     /(?!a(*COMMIT)b)ac|ad/
12609         ac
12610   0: ac   0: ac
12611         ad
12612     0: ad
12613    
12614    /^(?!a(*THEN)b|ac)../
12615         ac
12616    No match
12617         ad
12618     0: ad
12619    
12620    /^(?=a(*THEN)b|ac)/
12621        ac
12622     0:
12623    
12624    /\A.*?(?:a|b(*THEN)c)/
12625        ba
12626     0: ba
12627    
12628    /\A.*?(?:a|b(*THEN)c)++/
12629        ba
12630     0: ba
12631    
12632    /\A.*?(?:a|b(*THEN)c|d)/
12633        ba
12634     0: ba
12635    
12636    /(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/
12637        aac
12638     0: aac
12639    
12640    /\A.*?(a|b(*THEN)c)/
12641        ba
12642     0: ba
12643     1: a
12644    
12645    /^(A(*THEN)B|A(*THEN)D)/
12646        AD
12647     0: AD
12648     1: AD
12649    
12650    /(?!b(*THEN)a)bn|bnn/
12651        bnn
12652     0: bn
12653    
12654    /(?(?=b(*SKIP)a)bn|bnn)/
12655        bnn
12656    No match
12657    
12658    /(?=b(*THEN)a|)bn|bnn/
12659        bnn
12660     0: bn
12661    
12662    /-------------------------/
12663    
12664    /(*LIMIT_MATCH=12bc)abc/
12665    Failed: (*VERB) not recognized or malformed at offset 7
12666    
12667    /(*LIMIT_MATCH=4294967290)abc/
12668    Failed: (*VERB) not recognized or malformed at offset 7
12669    
12670    /(*LIMIT_RECURSION=4294967280)abc/I
12671    Capturing subpattern count = 0
12672    Recursion limit = 4294967280
12673    No options
12674    First char = 'a'
12675    Need char = 'c'
12676    
12677    /(a+)*zz/
12678        aaaaaaaaaaaaaz
12679    No match
12680        aaaaaaaaaaaaaz\q3000
12681    Error -8 (match limit exceeded)
12682    
12683    /(a+)*zz/S-
12684        aaaaaaaaaaaaaz\Q10
12685    Error -21 (recursion limit exceeded)
12686    
12687    /(*LIMIT_MATCH=3000)(a+)*zz/I
12688    Capturing subpattern count = 1
12689    Match limit = 3000
12690    No options
12691    No first char
12692    Need char = 'z'
12693        aaaaaaaaaaaaaz
12694    Error -8 (match limit exceeded)
12695        aaaaaaaaaaaaaz\q60000
12696    Error -8 (match limit exceeded)
12697    
12698    /(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I
12699    Capturing subpattern count = 1
12700    Match limit = 3000
12701    No options
12702    No first char
12703    Need char = 'z'
12704        aaaaaaaaaaaaaz
12705    Error -8 (match limit exceeded)
12706    
12707    /(*LIMIT_MATCH=60000)(a+)*zz/I
12708    Capturing subpattern count = 1
12709    Match limit = 60000
12710    No options
12711    No first char
12712    Need char = 'z'
12713        aaaaaaaaaaaaaz
12714    No match
12715        aaaaaaaaaaaaaz\q3000
12716    Error -8 (match limit exceeded)
12717    
12718    /(*LIMIT_RECURSION=10)(a+)*zz/IS-
12719    Capturing subpattern count = 1
12720    Recursion limit = 10
12721    No options
12722    No first char
12723    Need char = 'z'
12724    Subject length lower bound = 2
12725    Starting byte set: a z
12726        aaaaaaaaaaaaaz
12727    Error -21 (recursion limit exceeded)
12728        aaaaaaaaaaaaaz\Q1000
12729    Error -21 (recursion limit exceeded)
12730    
12731    /(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/IS-
12732    Capturing subpattern count = 1
12733    Recursion limit = 10
12734    No options
12735    No first char
12736    Need char = 'z'
12737    Subject length lower bound = 2
12738    Starting byte set: a z
12739        aaaaaaaaaaaaaz
12740    Error -21 (recursion limit exceeded)
12741    
12742    /(*LIMIT_RECURSION=1000)(a+)*zz/IS-
12743    Capturing subpattern count = 1
12744    Recursion limit = 1000
12745    No options
12746    No first char
12747    Need char = 'z'
12748    Subject length lower bound = 2
12749    Starting byte set: a z
12750        aaaaaaaaaaaaaz
12751    No match
12752        aaaaaaaaaaaaaz\Q10
12753    Error -21 (recursion limit exceeded)
12754    
12755    /-- This test causes a segfault with Perl 5.18.0 --/
12756    
12757    /^(?=(a)){0}b(?1)/
12758        backgammon
12759     0: ba
12760    
12761    /(?|(?<n>f)|(?<n>b))/JI
12762    Capturing subpattern count = 1
12763    Named capturing subpatterns:
12764      n   1
12765    Options: dupnames
12766    No first char
12767    No need char
12768    
12769    /(?<a>abc)(?<a>z)\k<a>()/JDZS
12770    ------------------------------------------------------------------
12771            Bra
12772            CBra 1
12773            abc
12774            Ket
12775            CBra 2
12776            z
12777            Ket
12778            \k<a>2
12779            CBra 3
12780            Ket
12781            Ket
12782            End
12783    ------------------------------------------------------------------
12784    Capturing subpattern count = 3
12785    Max back reference = 2
12786    Named capturing subpatterns:
12787      a   1
12788      a   2
12789    Options: dupnames
12790    First char = 'a'
12791    Need char = 'z'
12792    Subject length lower bound = 5
12793    No set of starting bytes
12794    
12795    /a*[bcd]/BZ
12796    ------------------------------------------------------------------
12797            Bra
12798            a*+
12799            [b-d]
12800            Ket
12801            End
12802    ------------------------------------------------------------------
12803    
12804    /[bcd]*a/BZ
12805    ------------------------------------------------------------------
12806            Bra
12807            [b-d]*+
12808            a
12809            Ket
12810            End
12811    ------------------------------------------------------------------
12812    
12813    /-- A complete set of tests for auto-possessification of character types --/
12814    
12815    /\D+\D \D+\d \D+\S \D+\s \D+\W \D+\w \D+. \D+\C \D+\R \D+\H \D+\h \D+\V \D+\v \D+\Z \D+\z \D+$/BZx
12816    ------------------------------------------------------------------
12817            Bra
12818            \D+
12819            \D
12820            \D++
12821            \d
12822            \D+
12823            \S
12824            \D+
12825            \s
12826            \D+
12827            \W
12828            \D+
12829            \w
12830            \D+
12831            Any
12832            \D+
12833            AllAny
12834            \D+
12835            \R
12836            \D+
12837            \H
12838            \D+
12839            \h
12840            \D+
12841            \V
12842            \D+
12843            \v
12844            \D+
12845            \Z
12846            \D++
12847            \z
12848            \D+
12849            $
12850            Ket
12851            End
12852    ------------------------------------------------------------------
12853    
12854    /\d+\D \d+\d \d+\S \d+\s \d+\W \d+\w \d+. \d+\C \d+\R \d+\H \d+\h \d+\V \d+\v \d+\Z \d+\z \d+$/BZx
12855    ------------------------------------------------------------------
12856            Bra
12857            \d++
12858            \D
12859            \d+
12860            \d
12861            \d+
12862            \S
12863            \d++
12864            \s
12865            \d++
12866            \W
12867            \d+
12868            \w
12869            \d+
12870            Any
12871            \d+
12872            AllAny
12873            \d++
12874            \R
12875            \d+
12876            \H
12877            \d++
12878            \h
12879            \d+
12880            \V
12881            \d++
12882            \v
12883            \d++
12884            \Z
12885            \d++
12886            \z
12887            \d++
12888            $
12889            Ket
12890            End
12891    ------------------------------------------------------------------
12892    
12893    /\S+\D \S+\d \S+\S \S+\s \S+\W \S+\w \S+. \S+\C \S+\R \S+\H \S+\h \S+\V \S+\v \S+\Z \S+\z \S+$/BZx
12894    ------------------------------------------------------------------
12895            Bra
12896            \S+
12897            \D
12898            \S+
12899            \d
12900            \S+
12901            \S
12902            \S++
12903            \s
12904            \S+
12905            \W
12906            \S+
12907            \w
12908            \S+
12909            Any
12910            \S+
12911            AllAny
12912            \S++
12913            \R
12914            \S+
12915            \H
12916            \S++
12917            \h
12918            \S+
12919            \V
12920            \S++
12921            \v
12922            \S++
12923            \Z
12924            \S++
12925            \z
12926            \S++
12927            $
12928            Ket
12929            End
12930    ------------------------------------------------------------------
12931    
12932    /\s+\D \s+\d \s+\S \s+\s \s+\W \s+\w \s+. \s+\C \s+\R \s+\H \s+\h \s+\V \s+\v \s+\Z \s+\z \s+$/BZx
12933    ------------------------------------------------------------------
12934            Bra
12935            \s+
12936            \D
12937            \s++
12938            \d
12939            \s++
12940            \S
12941            \s+
12942            \s
12943            \s+
12944            \W
12945            \s++
12946            \w
12947            \s+
12948            Any
12949            \s+
12950            AllAny
12951            \s+
12952            \R
12953            \s+
12954            \H
12955            \s+
12956            \h
12957            \s+
12958            \V
12959            \s+
12960            \v
12961            \s+
12962            \Z
12963            \s++
12964            \z
12965            \s+
12966            $
12967            Ket
12968            End
12969    ------------------------------------------------------------------
12970    
12971    /\W+\D \W+\d \W+\S \W+\s \W+\W \W+\w \W+. \W+\C \W+\R \W+\H \W+\h \W+\V \W+\v \W+\Z \W+\z \W+$/BZx
12972    ------------------------------------------------------------------
12973            Bra
12974            \W+
12975            \D
12976            \W++
12977            \d
12978            \W+
12979            \S
12980            \W+
12981            \s
12982            \W+
12983            \W
12984            \W++
12985            \w
12986            \W+
12987            Any
12988            \W+
12989            AllAny
12990            \W+
12991            \R
12992            \W+
12993            \H
12994            \W+
12995            \h
12996            \W+
12997            \V
12998            \W+
12999            \v
13000            \W+
13001            \Z
13002            \W++
13003            \z
13004            \W+
13005            $
13006            Ket
13007            End
13008    ------------------------------------------------------------------
13009    
13010    /\w+\D \w+\d \w+\S \w+\s \w+\W \w+\w \w+. \w+\C \w+\R \w+\H \w+\h \w+\V \w+\v \w+\Z \w+\z \w+$/BZx
13011    ------------------------------------------------------------------
13012            Bra
13013            \w+
13014            \D
13015            \w+
13016            \d
13017            \w+
13018            \S
13019            \w++
13020            \s
13021            \w++
13022            \W
13023            \w+
13024            \w
13025            \w+
13026            Any
13027            \w+
13028            AllAny
13029            \w++
13030            \R
13031            \w+
13032            \H
13033            \w++
13034            \h
13035            \w+
13036            \V
13037            \w++
13038            \v
13039            \w++
13040            \Z
13041            \w++
13042            \z
13043            \w++
13044            $
13045            Ket
13046            End
13047    ------------------------------------------------------------------
13048    
13049    /\C+\D \C+\d \C+\S \C+\s \C+\W \C+\w \C+. \C+\C \C+\R \C+\H \C+\h \C+\V \C+\v \C+\Z \C+\z \C+$/BZx
13050    ------------------------------------------------------------------
13051            Bra
13052            AllAny+
13053            \D
13054            AllAny+
13055            \d
13056            AllAny+
13057            \S
13058            AllAny+
13059            \s
13060            AllAny+
13061            \W
13062            AllAny+
13063            \w
13064            AllAny+
13065            Any
13066            AllAny+
13067            AllAny
13068            AllAny+
13069            \R
13070            AllAny+
13071            \H
13072            AllAny+
13073            \h
13074            AllAny+
13075            \V
13076            AllAny+
13077            \v
13078            AllAny+
13079            \Z
13080            AllAny++
13081            \z
13082            AllAny+
13083            $
13084            Ket
13085            End
13086    ------------------------------------------------------------------
13087    
13088    /\R+\D \R+\d \R+\S \R+\s \R+\W \R+\w \R+. \R+\C \R+\R \R+\H \R+\h \R+\V \R+\v \R+\Z \R+\z \R+$/BZx
13089    ------------------------------------------------------------------
13090            Bra
13091            \R+
13092            \D
13093            \R++
13094            \d
13095            \R+
13096            \S
13097            \R++
13098            \s
13099            \R+
13100            \W
13101            \R++
13102            \w
13103            \R++
13104            Any
13105            \R+
13106            AllAny
13107            \R+
13108            \R
13109            \R+
13110            \H
13111            \R++
13112            \h
13113            \R+
13114            \V
13115            \R+
13116            \v
13117            \R+
13118            \Z
13119            \R++
13120            \z
13121            \R+
13122            $
13123            Ket
13124            End
13125    ------------------------------------------------------------------
13126    
13127    /\H+\D \H+\d \H+\S \H+\s \H+\W \H+\w \H+. \H+\C \H+\R \H+\H \H+\h \H+\V \H+\v \H+\Z \H+\z \H+$/BZx
13128    ------------------------------------------------------------------
13129            Bra
13130            \H+
13131            \D
13132            \H+
13133            \d
13134            \H+
13135            \S
13136            \H+
13137            \s
13138            \H+
13139            \W
13140            \H+
13141            \w
13142            \H+
13143            Any
13144            \H+
13145            AllAny
13146            \H+
13147            \R
13148            \H+
13149            \H
13150            \H++
13151            \h
13152            \H+
13153            \V
13154            \H+
13155            \v
13156            \H+
13157            \Z
13158            \H++
13159            \z
13160            \H+
13161            $
13162            Ket
13163            End
13164    ------------------------------------------------------------------
13165    
13166    /\h+\D \h+\d \h+\S \h+\s \h+\W \h+\w \h+. \h+\C \h+\R \h+\H \h+\h \h+\V \h+\v \h+\Z \h+\z \h+$/BZx
13167    ------------------------------------------------------------------
13168            Bra
13169            \h+
13170            \D
13171            \h++
13172            \d
13173            \h++
13174            \S
13175            \h+
13176            \s
13177            \h+
13178            \W
13179            \h++
13180            \w
13181            \h+
13182            Any
13183            \h+
13184            AllAny
13185            \h++
13186            \R
13187            \h++
13188            \H
13189            \h+
13190            \h
13191            \h+
13192            \V
13193            \h++
13194            \v
13195            \h+
13196            \Z
13197            \h++
13198            \z
13199            \h+
13200            $
13201            Ket
13202            End
13203    ------------------------------------------------------------------
13204    
13205    /\V+\D \V+\d \V+\S \V+\s \V+\W \V+\w \V+. \V+\C \V+\R \V+\H \V+\h \V+\V \V+\v \V+\Z \V+\z \V+$/BZx
13206    ------------------------------------------------------------------
13207            Bra
13208            \V+
13209            \D
13210            \V+
13211            \d
13212            \V+
13213            \S
13214            \V+
13215            \s
13216            \V+
13217            \W
13218            \V+
13219            \w
13220            \V+
13221            Any
13222            \V+
13223            AllAny
13224            \V++
13225            \R
13226            \V+
13227            \H
13228            \V+
13229            \h
13230            \V+
13231            \V
13232            \V++
13233            \v
13234            \V+
13235            \Z
13236            \V++
13237            \z
13238            \V+
13239            $
13240            Ket
13241            End
13242    ------------------------------------------------------------------
13243    
13244    /\v+\D \v+\d \v+\S \v+\s \v+\W \v+\w \v+. \v+\C \v+\R \v+\H \v+\h \v+\V \v+\v \v+\Z \v+\z \v+$/BZx
13245    ------------------------------------------------------------------
13246            Bra
13247            \v+
13248            \D
13249            \v++
13250            \d
13251            \v++
13252            \S
13253            \v+
13254            \s
13255            \v+
13256            \W
13257            \v++
13258            \w
13259            \v+
13260            Any
13261            \v+
13262            AllAny
13263            \v+
13264            \R
13265            \v+
13266            \H
13267            \v++
13268            \h
13269            \v++
13270            \V
13271            \v+
13272            \v
13273            \v+
13274            \Z
13275            \v++
13276            \z
13277            \v+
13278            $
13279            Ket
13280            End
13281    ------------------------------------------------------------------
13282    
13283    / a+\D  a+\d  a+\S  a+\s  a+\W  a+\w  a+.  a+\C  a+\R  a+\H  a+\h  a+\V  a+\v  a+\Z  a+\z  a+$/BZx
13284    ------------------------------------------------------------------
13285            Bra
13286            a+
13287            \D
13288            a++
13289            \d
13290            a+
13291            \S
13292            a++
13293            \s
13294            a++
13295            \W
13296            a+
13297            \w
13298            a+
13299            Any
13300            a+
13301            AllAny
13302            a++
13303            \R
13304            a+
13305            \H
13306            a++
13307            \h
13308            a+
13309            \V
13310            a++
13311            \v
13312            a++
13313            \Z
13314            a++
13315            \z
13316            a++
13317            $
13318            Ket
13319            End
13320    ------------------------------------------------------------------
13321    
13322    /\n+\D \n+\d \n+\S \n+\s \n+\W \n+\w \n+. \n+\C \n+\R \n+\H \n+\h \n+\V \n+\v \n+\Z \n+\z \n+$/BZx
13323    ------------------------------------------------------------------
13324            Bra
13325            \x0a+
13326            \D
13327            \x0a++
13328            \d
13329            \x0a++
13330            \S
13331            \x0a+
13332            \s
13333            \x0a+
13334            \W
13335            \x0a++
13336            \w
13337            \x0a+
13338            Any
13339            \x0a+
13340            AllAny
13341            \x0a+
13342            \R
13343            \x0a+
13344            \H
13345            \x0a++
13346            \h
13347            \x0a++
13348            \V
13349            \x0a+
13350            \v
13351            \x0a+
13352            \Z
13353            \x0a++
13354            \z
13355            \x0a+
13356            $
13357            Ket
13358            End
13359    ------------------------------------------------------------------
13360    
13361    / .+\D  .+\d  .+\S  .+\s  .+\W  .+\w  .+.  .+\C  .+\R  .+\H  .+\h  .+\V  .+\v  .+\Z  .+\z  .+$/BZx
13362    ------------------------------------------------------------------
13363            Bra
13364            Any+
13365            \D
13366            Any+
13367            \d
13368            Any+
13369            \S
13370            Any+
13371            \s
13372            Any+
13373            \W
13374            Any+
13375            \w
13376            Any+
13377            Any
13378            Any+
13379            AllAny
13380            Any++
13381            \R
13382            Any+
13383            \H
13384            Any+
13385            \h
13386            Any+
13387            \V
13388            Any+
13389            \v
13390            Any+
13391            \Z
13392            Any++
13393            \z
13394            Any+
13395            $
13396            Ket
13397            End
13398    ------------------------------------------------------------------
13399    
13400    / .+\D  .+\d  .+\S  .+\s  .+\W  .+\w  .+.  .+\C  .+\R  .+\H  .+\h  .+\V  .+\v  .+\Z  .+\z  .+$/BZxs
13401    ------------------------------------------------------------------
13402            Bra
13403            AllAny+
13404            \D
13405            AllAny+
13406            \d
13407            AllAny+
13408            \S
13409            AllAny+
13410            \s
13411            AllAny+
13412            \W
13413            AllAny+
13414            \w
13415            AllAny+
13416            AllAny
13417            AllAny+
13418            AllAny
13419            AllAny+
13420            \R
13421            AllAny+
13422            \H
13423            AllAny+
13424            \h
13425            AllAny+
13426            \V
13427            AllAny+
13428            \v
13429            AllAny+
13430            \Z
13431            AllAny++
13432            \z
13433            AllAny+
13434            $
13435            Ket
13436            End
13437    ------------------------------------------------------------------
13438    
13439    /\D+$  \d+$  \S+$  \s+$  \W+$  \w+$  \C+$  \R+$  \H+$  \h+$  \V+$  \v+$   a+$  \n+$   .+$  .+$/BZxm
13440    ------------------------------------------------------------------
13441            Bra
13442            \D+
13443         /m $
13444            \d++
13445         /m $
13446            \S++
13447         /m $
13448            \s+
13449         /m $
13450            \W+
13451         /m $
13452            \w++
13453         /m $
13454            AllAny+
13455         /m $
13456            \R+
13457         /m $
13458            \H+
13459         /m $
13460            \h+
13461         /m $
13462            \V+
13463         /m $
13464            \v+
13465         /m $
13466            a+
13467         /m $
13468            \x0a+
13469         /m $
13470            Any+
13471         /m $
13472            Any+
13473         /m $
13474            Ket
13475            End
13476    ------------------------------------------------------------------
13477    
13478    /(?=a+)a(a+)++a/BZ
13479    ------------------------------------------------------------------
13480            Bra
13481            Assert
13482            a++
13483            Ket
13484            a
13485            CBraPos 1
13486            a++
13487            KetRpos
13488            a
13489            Ket
13490            End
13491    ------------------------------------------------------------------
13492    
13493    /a+(bb|cc)a+(?:bb|cc)a+(?>bb|cc)a+(?:bb|cc)+a+(aa)a+(?:bb|aa)/BZ
13494    ------------------------------------------------------------------
13495            Bra
13496            a++
13497            CBra 1
13498            bb
13499            Alt
13500            cc
13501            Ket
13502            a++
13503            Bra
13504            bb
13505            Alt
13506            cc
13507            Ket
13508            a++
13509            Once_NC
13510            bb
13511            Alt
13512            cc
13513            Ket
13514            a++
13515            Bra
13516            bb
13517            Alt
13518            cc
13519            KetRmax
13520            a+
13521            CBra 2
13522            aa
13523            Ket
13524            a+
13525            Bra
13526            bb
13527            Alt
13528            aa
13529            Ket
13530            Ket
13531            End
13532    ------------------------------------------------------------------
13533    
13534    /a+(bb|cc)?#a+(?:bb|cc)??#a+(?:bb|cc)?+#a+(?:bb|cc)*#a+(bb|cc)?a#a+(?:aa)?/BZ
13535    ------------------------------------------------------------------
13536            Bra
13537            a++
13538            Brazero
13539            CBra 1
13540            bb
13541            Alt
13542            cc
13543            Ket
13544            #
13545            a++
13546            Braminzero
13547            Bra
13548            bb
13549            Alt
13550            cc
13551            Ket
13552            #
13553            a++
13554            Once
13555            Brazero
13556            Bra
13557            bb
13558            Alt
13559            cc
13560            Ket
13561            Ket
13562            #
13563            a++
13564            Brazero
13565            Bra
13566            bb
13567            Alt
13568            cc
13569            KetRmax
13570            #
13571            a+
13572            Brazero
13573            CBra 2
13574            bb
13575            Alt
13576            cc
13577            Ket
13578            a#
13579            a+
13580            Brazero
13581            Bra
13582            aa
13583            Ket
13584            Ket
13585            End
13586    ------------------------------------------------------------------
13587    
13588    /a+(?:bb)?a#a+(?:|||)#a+(?:|b)a#a+(?:|||)?a/BZ
13589    ------------------------------------------------------------------
13590            Bra
13591            a+
13592            Brazero
13593            Bra
13594            bb
13595            Ket
13596            a#
13597            a++
13598            Bra
13599            Alt
13600            Alt
13601            Alt
13602            Ket
13603            #
13604            a+
13605            Bra
13606            Alt
13607            b
13608            Ket
13609            a#
13610            a+
13611            Brazero
13612            Bra
13613            Alt
13614            Alt
13615            Alt
13616            Ket
13617            a
13618            Ket
13619            End
13620    ------------------------------------------------------------------
13621    
13622    /[ab]*/BZ
13623    ------------------------------------------------------------------
13624            Bra
13625            [ab]*+
13626            Ket
13627            End
13628    ------------------------------------------------------------------
13629        aaaa
13630     0: aaaa
13631    
13632    /[ab]*?/BZ
13633    ------------------------------------------------------------------
13634            Bra
13635            [ab]*?
13636            Ket
13637            End
13638    ------------------------------------------------------------------
13639        aaaa
13640     0:
13641    
13642    /[ab]?/BZ
13643    ------------------------------------------------------------------
13644            Bra
13645            [ab]?+
13646            Ket
13647            End
13648    ------------------------------------------------------------------
13649        aaaa
13650     0: a
13651    
13652    /[ab]??/BZ
13653    ------------------------------------------------------------------
13654            Bra
13655            [ab]??
13656            Ket
13657            End
13658    ------------------------------------------------------------------
13659        aaaa
13660     0:
13661    
13662    /[ab]+/BZ
13663    ------------------------------------------------------------------
13664            Bra
13665            [ab]++
13666            Ket
13667            End
13668    ------------------------------------------------------------------
13669        aaaa
13670     0: aaaa
13671    
13672    /[ab]+?/BZ
13673    ------------------------------------------------------------------
13674            Bra
13675            [ab]+?
13676            Ket
13677            End
13678    ------------------------------------------------------------------
13679        aaaa
13680     0: a
13681    
13682    /[ab]{2,3}/BZ
13683    ------------------------------------------------------------------
13684            Bra
13685            [ab]{2,3}+
13686            Ket
13687            End
13688    ------------------------------------------------------------------
13689        aaaa
13690     0: aaa
13691    
13692    /[ab]{2,3}?/BZ
13693    ------------------------------------------------------------------
13694            Bra
13695            [ab]{2,3}?
13696            Ket
13697            End
13698    ------------------------------------------------------------------
13699        aaaa
13700     0: aa
13701    
13702    /[ab]{2,}/BZ
13703    ------------------------------------------------------------------
13704            Bra
13705            [ab]{2,}+
13706            Ket
13707            End
13708    ------------------------------------------------------------------
13709        aaaa
13710     0: aaaa
13711    
13712    /[ab]{2,}?/BZ
13713    ------------------------------------------------------------------
13714            Bra
13715            [ab]{2,}?
13716            Ket
13717            End
13718    ------------------------------------------------------------------
13719        aaaa
13720     0: aa
13721    
13722    /\d+\s{0,5}=\s*\S?=\w{0,4}\W*/BZ
13723    ------------------------------------------------------------------
13724            Bra
13725            \d++
13726            \s{0,5}+
13727            =
13728            \s*+
13729            \S?
13730            =
13731            \w{0,4}+
13732            \W*+
13733            Ket
13734            End
13735    ------------------------------------------------------------------
13736    
13737    /[a-d]{5,12}[e-z0-9]*#[^a-z]+[b-y]*a[2-7]?[^0-9a-z]+/BZ
13738    ------------------------------------------------------------------
13739            Bra
13740            [a-d]{5,12}+
13741            [0-9e-z]*+
13742            #
13743            [\x00-`{-\xff] (neg)++
13744            [b-y]*+
13745            a
13746            [2-7]?+
13747            [\x00-/:-`{-\xff] (neg)++
13748            Ket
13749            End
13750    ------------------------------------------------------------------
13751    
13752    /[a-z]*\s#[ \t]?\S#[a-c]*\S#[C-G]+?\d#[4-8]*\D#[4-9,]*\D#[!$]{0,5}\w#[M-Xf-l]+\W#[a-c,]?\W/BZ
13753    ------------------------------------------------------------------
13754            Bra
13755            [a-z]*+
13756            \s
13757            #
13758            [\x09 ]?+
13759            \S
13760            #
13761            [a-c]*
13762            \S
13763            #
13764            [C-G]++
13765            \d
13766            #
13767            [4-8]*+
13768            \D
13769            #
13770            [,4-9]*
13771            \D
13772            #
13773            [!$]{0,5}+
13774            \w
13775            #
13776            [M-Xf-l]++
13777            \W
13778            #
13779            [,a-c]?
13780            \W
13781            Ket
13782            End
13783    ------------------------------------------------------------------
13784    
13785    /a+(aa|bb)*c#a*(bb|cc)*a#a?(bb|cc)*d#[a-f]*(g|hh)*f/BZ
13786    ------------------------------------------------------------------
13787            Bra
13788            a+
13789            Brazero
13790            CBra 1
13791            aa
13792            Alt
13793            bb
13794            KetRmax
13795            c#
13796            a*
13797            Brazero
13798            CBra 2
13799            bb
13800            Alt
13801            cc
13802            KetRmax
13803            a#
13804            a?+
13805            Brazero
13806            CBra 3
13807            bb
13808            Alt
13809            cc
13810            KetRmax
13811            d#
13812            [a-f]*
13813            Brazero
13814            CBra 4
13815            g
13816            Alt
13817            hh
13818            KetRmax
13819            f
13820            Ket
13821            End
13822    ------------------------------------------------------------------
13823    
13824    /[a-f]*(g|hh|i)*i#[a-x]{4,}(y{0,6})*y#[a-k]+(ll|mm)+n/BZ
13825    ------------------------------------------------------------------
13826            Bra
13827            [a-f]*+
13828            Brazero
13829            CBra 1
13830            g
13831            Alt
13832            hh
13833            Alt
13834            i
13835            KetRmax
13836            i#
13837            [a-x]{4,}
13838            Brazero
13839            SCBra 2
13840            y{0,6}
13841            KetRmax
13842            y#
13843            [a-k]++
13844            CBra 3
13845            ll
13846            Alt
13847            mm
13848            KetRmax
13849            n
13850            Ket
13851            End
13852    ------------------------------------------------------------------
13853    
13854    /[a-f]*(?>gg|hh)+#[a-f]*(?>gg|hh)?#[a-f]*(?>gg|hh)*a#[a-f]*(?>gg|hh)*h/BZ
13855    ------------------------------------------------------------------
13856            Bra
13857            [a-f]*+
13858            Once_NC
13859            gg
13860            Alt
13861            hh
13862            KetRmax
13863            #
13864            [a-f]*+
13865            Brazero
13866            Once_NC
13867            gg
13868            Alt
13869            hh
13870            Ket
13871            #
13872            [a-f]*
13873            Brazero
13874            Once_NC
13875            gg
13876            Alt
13877            hh
13878            KetRmax
13879            a#
13880            [a-f]*+
13881            Brazero
13882            Once_NC
13883            gg
13884            Alt
13885            hh
13886            KetRmax
13887            h
13888            Ket
13889            End
13890    ------------------------------------------------------------------
13891    
13892    /[a-c]*d/DZS
13893    ------------------------------------------------------------------
13894            Bra
13895            [a-c]*+
13896            d
13897            Ket
13898            End
13899    ------------------------------------------------------------------
13900    Capturing subpattern count = 0
13901    No options
13902    No first char
13903    Need char = 'd'
13904    Subject length lower bound = 1
13905    Starting byte set: a b c d
13906    
13907    /[a-c]+d/DZS
13908    ------------------------------------------------------------------
13909            Bra
13910            [a-c]++
13911            d
13912            Ket
13913            End
13914    ------------------------------------------------------------------
13915    Capturing subpattern count = 0
13916    No options
13917    No first char
13918    Need char = 'd'
13919    Subject length lower bound = 2
13920    Starting byte set: a b c
13921    
13922    /[a-c]?d/DZS
13923    ------------------------------------------------------------------
13924            Bra
13925            [a-c]?+
13926            d
13927            Ket
13928            End
13929    ------------------------------------------------------------------
13930    Capturing subpattern count = 0
13931    No options
13932    No first char
13933    Need char = 'd'
13934    Subject length lower bound = 1
13935    Starting byte set: a b c d
13936    
13937    /[a-c]{4,6}d/DZS
13938    ------------------------------------------------------------------
13939            Bra
13940            [a-c]{4,6}+
13941            d
13942            Ket
13943            End
13944    ------------------------------------------------------------------
13945    Capturing subpattern count = 0
13946    No options
13947    No first char
13948    Need char = 'd'
13949    Subject length lower bound = 5
13950    Starting byte set: a b c
13951    
13952    /[a-c]{0,6}d/DZS
13953    ------------------------------------------------------------------
13954            Bra
13955            [a-c]{0,6}+
13956            d
13957            Ket
13958            End
13959    ------------------------------------------------------------------
13960    Capturing subpattern count = 0
13961    No options
13962    No first char
13963    Need char = 'd'
13964    Subject length lower bound = 1
13965    Starting byte set: a b c d
13966    
13967    /-- End of special auto-possessive tests --/
13968    
13969    /^A\o{1239}B/
13970    Failed: non-octal character in \o{} (closing brace missing?) at offset 8
13971    
13972    /^A\oB/
13973    Failed: missing opening brace after \o at offset 3
13974    
13975    /^A\x{zz}B/
13976    Failed: non-hex character in \x{} (closing brace missing?) at offset 5
13977    
13978    /^A\x{12Z/
13979    Failed: non-hex character in \x{} (closing brace missing?) at offset 7
13980    
13981    /^A\x{/
13982    Failed: non-hex character in \x{} (closing brace missing?) at offset 5
13983    
13984    /[ab]++/BZO
13985    ------------------------------------------------------------------
13986            Bra
13987            [ab]++
13988            Ket
13989            End
13990    ------------------------------------------------------------------
13991    
13992    /[^ab]*+/BZO
13993    ------------------------------------------------------------------
13994            Bra
13995            [\x00-`c-\xff] (neg)*+
13996            Ket
13997            End
13998    ------------------------------------------------------------------
13999    
14000    /a{4}+/BZO
14001    ------------------------------------------------------------------
14002            Bra
14003            a{4}
14004            Ket
14005            End
14006    ------------------------------------------------------------------
14007    
14008    /a{4}+/BZOi
14009    ------------------------------------------------------------------
14010            Bra
14011         /i a{4}
14012            Ket
14013            End
14014    ------------------------------------------------------------------
14015    
14016    /[a-[:digit:]]+/
14017    Failed: invalid range in character class at offset 3
14018    
14019    /[A-[:digit:]]+/
14020    Failed: invalid range in character class at offset 3
14021    
14022    /[a-[.xxx.]]+/
14023    Failed: invalid range in character class at offset 3
14024    
14025    /[a-[=xxx=]]+/
14026    Failed: invalid range in character class at offset 3
14027    
14028    /[a-[!xxx!]]+/
14029    Failed: range out of order in character class at offset 3
14030    
14031    /[A-[!xxx!]]+/
14032        A]]]
14033     0: A]]]
14034    
14035    /[a-\d]+/
14036    Failed: invalid range in character class at offset 4
14037    
14038    /(?<0abc>xx)/
14039    Failed: group name must start with a non-digit at offset 3
14040    
14041    /(?&1abc)xx(?<1abc>y)/
14042    Failed: group name must start with a non-digit at offset 3
14043    
14044    /(?<ab-cd>xx)/
14045    Failed: syntax error in subpattern name (missing terminator) at offset 5
14046    
14047    /(?'0abc'xx)/
14048    Failed: group name must start with a non-digit at offset 3
14049    
14050    /(?P<0abc>xx)/
14051    Failed: group name must start with a non-digit at offset 4
14052    
14053    /\k<5ghj>/
14054    Failed: group name must start with a non-digit at offset 3
14055    
14056    /\k'5ghj'/
14057    Failed: group name must start with a non-digit at offset 3
14058    
14059    /\k{2fgh}/
14060    Failed: group name must start with a non-digit at offset 3
14061    
14062    /(?P=8yuki)/
14063    Failed: group name must start with a non-digit at offset 4
14064    
14065    /\g{4df}/
14066    Failed: group name must start with a non-digit at offset 3
14067    
14068    /(?&1abc)xx(?<1abc>y)/
14069    Failed: group name must start with a non-digit at offset 3
14070    
14071    /(?P>1abc)xx(?<1abc>y)/
14072    Failed: group name must start with a non-digit at offset 4
14073    
14074    /\g'3gh'/
14075    Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 7
14076    
14077    /\g<5fg>/
14078    Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 7
14079    
14080    /(?(<4gh>)abc)/
14081    Failed: group name must start with a non-digit at offset 4
14082    
14083    /(?('4gh')abc)/
14084    Failed: group name must start with a non-digit at offset 4
14085    
14086    /(?(4gh)abc)/
14087    Failed: malformed number or name after (?( at offset 4
14088    
14089    /(?(R&6yh)abc)/
14090    Failed: group name must start with a non-digit at offset 5
14091    
14092    /-- Test the ugly "start or end of word" compatibility syntax --/
14093    
14094    /[[:<:]]red[[:>:]]/BZ
14095    ------------------------------------------------------------------
14096            Bra
14097            \b
14098            Assert
14099            \w
14100            Ket
14101            red
14102            \b
14103            AssertB
14104            Reverse
14105            \w
14106            Ket
14107            Ket
14108            End
14109    ------------------------------------------------------------------
14110        little red riding hood
14111     0: red
14112        a /red/ thing
14113     0: red
14114        red is a colour
14115     0: red
14116        put it all on red
14117     0: red
14118        ** Failers
14119    No match
14120        no reduction
14121    No match
14122        Alfred Winifred
14123    No match
14124    
14125    /[a[:<:]] should give error/
14126    Failed: unknown POSIX class name at offset 4
14127    
14128  /-- End of testinput2 --/  /-- End of testinput2 --/

Legend:
Removed from v.937  
changed lines
  Added in v.1408

  ViewVC Help
Powered by ViewVC 1.1.5