/[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 511 by ph10, Mon Mar 29 09:25:38 2010 UTC revision 1382 by zherczeg, Fri Oct 18 07:55:07 2013 UTC
# Line 2  Line 2 
2      of PCRE's API, error diagnostics, and the compiled code of some patterns.      of PCRE's API, error diagnostics, and the compiled code of some patterns.
3      It also checks the non-Perl syntax the PCRE supports (Python, .NET,      It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4      Oniguruma). Finally, there are some tests where PCRE and Perl differ,      Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5      either because PCRE can't be compatible, or there is potential Perl      either because PCRE can't be compatible, or there is a possible Perl
6      bug. --/      bug.
7    
8        NOTE: This is a non-UTF set of tests. When UTF support is needed, use
9        test 5, and if Unicode Property Support is needed, use test 7. --/
10    
 /-- Originally, the Perl 5.10 things were in here too, but now I have separated  
     many (most?) of them out into test 11. However, there may still be some  
     that were overlooked. --/  
   
11  /(a)b|/I  /(a)b|/I
12  Capturing subpattern count = 1  Capturing subpattern count = 1
13    May match empty string
14  No options  No options
15  No first char  No first char
16  No need char  No need char
# Line 103  Failed: missing terminating ] for charac Line 103  Failed: missing terminating ] for charac
103  /(?X)[\B]/  /(?X)[\B]/
104  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
105    
106    /(?X)[\R]/
107    Failed: invalid escape sequence in character class at offset 6
108    
109    /(?X)[\X]/
110    Failed: invalid escape sequence in character class at offset 6
111    
112    /[\B]/BZ
113    ------------------------------------------------------------------
114            Bra
115            B
116            Ket
117            End
118    ------------------------------------------------------------------
119    
120    /[\R]/BZ
121    ------------------------------------------------------------------
122            Bra
123            R
124            Ket
125            End
126    ------------------------------------------------------------------
127    
128    /[\X]/BZ
129    ------------------------------------------------------------------
130            Bra
131            X
132            Ket
133            End
134    ------------------------------------------------------------------
135    
136  /[z-a]/  /[z-a]/
137  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
138    
# Line 199  No options Line 229  No options
229  No first char  No first char
230  No need char  No need char
231  Subject length lower bound = 1  Subject length lower bound = 1
232  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 a b
233    
234  /(ab\2)/  /(ab\2)/
235  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
# Line 347  No need char Line 377  No need char
377   2: <unset>   2: <unset>
378   3: def   3: def
379    
 /abc/P  
     abc  
  0: abc  
     *** Failers  
 No match: POSIX code 17: match failed  
   
 /^abc|def/P  
     abcdef  
  0: abc  
     abcdef\B  
  0: def  
   
 /.*((abc)$|(def))/P  
     defabc  
  0: defabc  
  1: abc  
  2: abc  
     \Zdefabc  
  0: def  
  1: def  
  3: def  
   
 /the quick brown fox/P  
     the quick brown fox  
  0: the quick brown fox  
     *** Failers  
 No match: POSIX code 17: match failed  
     The Quick Brown Fox  
 No match: POSIX code 17: match failed  
   
 /the quick brown fox/Pi  
     the quick brown fox  
  0: the quick brown fox  
     The Quick Brown Fox  
  0: The Quick Brown Fox  
   
 /abc.def/P  
     *** Failers  
 No match: POSIX code 17: match failed  
     abc\ndef  
 No match: POSIX code 17: match failed  
   
 /abc$/P  
     abc  
  0: abc  
     abc\n  
  0: abc  
   
 /(abc)\2/P  
 Failed: POSIX code 15: bad back reference at offset 7  
   
 /(abc\1)/P  
     abc  
 No match: POSIX code 17: match failed  
   
380  /)/  /)/
381  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
382    
# Line 474  Need char = '=' Line 449  Need char = '='
449    
450  /(?<!bar|cattle)foo/I  /(?<!bar|cattle)foo/I
451  Capturing subpattern count = 0  Capturing subpattern count = 0
452    Max lookbehind = 6
453  No options  No options
454  First char = 'f'  First char = 'f'
455  Need char = 'o'  Need char = 'o'
# Line 523  No need char Line 499  No need char
499    
500  /(?s).*/I  /(?s).*/I
501  Capturing subpattern count = 0  Capturing subpattern count = 0
502    May match empty string
503  Options: anchored dotall  Options: anchored dotall
504  No first char  No first char
505  No need char  No need char
# Line 602  Need char = 'h' (caseless) Line 579  Need char = 'h' (caseless)
579  ------------------------------------------------------------------  ------------------------------------------------------------------
580          Bra          Bra
581          CBra 1          CBra 1
582       01 Opt       /i b
      NC b  
583          Ket          Ket
      00 Opt  
584          Ket          Ket
585          End          End
586  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 658  No match Line 633  No match
633    
634  /\Aabc/Im  /\Aabc/Im
635  Capturing subpattern count = 0  Capturing subpattern count = 0
636    Max lookbehind = 1
637  Options: anchored multiline  Options: anchored multiline
638  No first char  No first char
639  No need char  No need char
# Line 683  No need char Line 659  No need char
659    
660  /(?<=foo)[ab]/IS  /(?<=foo)[ab]/IS
661  Capturing subpattern count = 0  Capturing subpattern count = 0
662    Max lookbehind = 3
663  No options  No options
664  No first char  No first char
665  No need char  No need char
# Line 691  Starting byte set: a b Line 668  Starting byte set: a b
668    
669  /(?<!foo)(alpha|omega)/IS  /(?<!foo)(alpha|omega)/IS
670  Capturing subpattern count = 1  Capturing subpattern count = 1
671    Max lookbehind = 3
672  No options  No options
673  No first char  No first char
674  Need char = 'a'  Need char = 'a'
# Line 707  Starting byte set: a b Line 685  Starting byte set: a b
685    
686  /(?<=foo\n)^bar/Im  /(?<=foo\n)^bar/Im
687  Capturing subpattern count = 0  Capturing subpattern count = 0
688    Max lookbehind = 4
689  Contains explicit CR or LF match  Contains explicit CR or LF match
690  Options: multiline  Options: multiline
691  No first char  No first char
# Line 724  No match Line 703  No match
703    
704  /^(?<=foo\n)bar/Im  /^(?<=foo\n)bar/Im
705  Capturing subpattern count = 0  Capturing subpattern count = 0
706    Max lookbehind = 4
707  Contains explicit CR or LF match  Contains explicit CR or LF match
708  Options: multiline  Options: multiline
709  First char at start or follows newline  First char at start or follows newline
# Line 766  Failed: lookbehind assertion is not fixe Line 746  Failed: lookbehind assertion is not fixe
746    
747  /(?<=bullock|donkey)-cart/I  /(?<=bullock|donkey)-cart/I
748  Capturing subpattern count = 0  Capturing subpattern count = 0
749    Max lookbehind = 7
750  No options  No options
751  First char = '-'  First char = '-'
752  Need char = 't'  Need char = 't'
# Line 782  No match Line 763  No match
763    
764  /(?<=ab(?i)x|y|z)/I  /(?<=ab(?i)x|y|z)/I
765  Capturing subpattern count = 0  Capturing subpattern count = 0
766    Max lookbehind = 3
767    May match empty string
768  No options  No options
769  No first char  No first char
770  No need char  No need char
771    
772  /(?>.*)(?<=(abcd)|(xyz))/I  /(?>.*)(?<=(abcd)|(xyz))/I
773  Capturing subpattern count = 2  Capturing subpattern count = 2
774    Max lookbehind = 4
775    May match empty string
776  No options  No options
777  First char at start or follows newline  No first char
778  No need char  No need char
779      alphabetabcd      alphabetabcd
780   0: alphabetabcd   0: alphabetabcd
# Line 801  No need char Line 786  No need char
786    
787  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
788  Capturing subpattern count = 0  Capturing subpattern count = 0
789    Max lookbehind = 4
790  No options  No options
791  First char = 'Z'  First char = 'Z'
792  Need char = 'Z'  Need char = 'Z'
# Line 829  No match Line 815  No match
815    
816  /(?<!(foo)a)bar/I  /(?<!(foo)a)bar/I
817  Capturing subpattern count = 1  Capturing subpattern count = 1
818    Max lookbehind = 4
819  No options  No options
820  First char = 'b'  First char = 'b'
821  Need char = 'r'  Need char = 'r'
# Line 841  No match Line 828  No match
828      fooabar      fooabar
829  No match  No match
830    
 /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  
   
831  /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
832  Capturing subpattern count = 0  Capturing subpattern count = 0
833  No options  No options
# Line 1003  Failed: numbers out of order in {} quant Line 974  Failed: numbers out of order in {} quant
974  /abc/\  /abc/\
975  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
976    
 /abc/\P  
 Failed: POSIX code 9: bad escape sequence at offset 4  
   
977  /abc/\i  /abc/\i
978  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
979    
# Line 1121  No first char Line 1089  No first char
1089  No need char  No need char
1090      abc\00def\L\C0      abc\00def\L\C0
1091   0: abc\x00def   0: abc\x00def
1092   0C abc (7)   0C abc\x00def (7)
1093   0L abc   0L abc
1094    
1095  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
# Line 1217  No need char Line 1185  No need char
1185  ------------------------------------------------------------------  ------------------------------------------------------------------
1186          Bra          Bra
1187          Bra          Bra
      04 Opt  
1188          AllAny*          AllAny*
1189          X          X
1190          Alt          Alt
      04 Opt  
1191          ^          ^
1192          B          B
1193          Ket          Ket
      00 Opt  
1194          Ket          Ket
1195          End          End
1196  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1236  No need char Line 1201  No need char
1201    
1202  /\Biss\B/I+  /\Biss\B/I+
1203  Capturing subpattern count = 0  Capturing subpattern count = 0
1204    Max lookbehind = 1
1205  No options  No options
1206  First char = 'i'  First char = 'i'
1207  Need char = 's'  Need char = 's'
# Line 1243  Need char = 's' Line 1209  Need char = 's'
1209   0: iss   0: iss
1210   0+ issippi   0+ issippi
1211    
 /\Biss\B/I+P  
     Mississippi  
  0: iss  
  0+ issippi  
   
1212  /iss/IG+  /iss/IG+
1213  Capturing subpattern count = 0  Capturing subpattern count = 0
1214  No options  No options
# Line 1261  Need char = 's' Line 1222  Need char = 's'
1222    
1223  /\Biss\B/IG+  /\Biss\B/IG+
1224  Capturing subpattern count = 0  Capturing subpattern count = 0
1225    Max lookbehind = 1
1226  No options  No options
1227  First char = 'i'  First char = 'i'
1228  Need char = 's'  Need char = 's'
# Line 1270  Need char = 's' Line 1232  Need char = 's'
1232    
1233  /\Biss\B/Ig+  /\Biss\B/Ig+
1234  Capturing subpattern count = 0  Capturing subpattern count = 0
1235    Max lookbehind = 1
1236  No options  No options
1237  First char = 'i'  First char = 'i'
1238  Need char = 's'  Need char = 's'
# Line 1285  No match Line 1248  No match
1248    
1249  /(?<=[Ms])iss/Ig+  /(?<=[Ms])iss/Ig+
1250  Capturing subpattern count = 0  Capturing subpattern count = 0
1251    Max lookbehind = 1
1252  No options  No options
1253  First char = 'i'  First char = 'i'
1254  Need char = 's'  Need char = 's'
# Line 1296  Need char = 's' Line 1260  Need char = 's'
1260    
1261  /(?<=[Ms])iss/IG+  /(?<=[Ms])iss/IG+
1262  Capturing subpattern count = 0  Capturing subpattern count = 0
1263    Max lookbehind = 1
1264  No options  No options
1265  First char = 'i'  First char = 'i'
1266  Need char = 's'  Need char = 's'
# Line 1377  Capturing subpattern count = 0 Line 1342  Capturing subpattern count = 0
1342  Contains explicit CR or LF match  Contains explicit CR or LF match
1343  Options: multiline  Options: multiline
1344  First char at start or follows newline  First char at start or follows newline
1345  Need char = 10  Need char = \x0a
1346      ab\nab\ncd      ab\nab\ncd
1347   0: ab\x0a   0: ab\x0a
1348   0+ ab\x0acd   0+ ab\x0acd
# Line 1416  Need char = 'c' Line 1381  Need char = 'c'
1381    
1382  /a*/I  /a*/I
1383  Capturing subpattern count = 0  Capturing subpattern count = 0
1384    May match empty string
1385  No options  No options
1386  No first char  No first char
1387  No need char  No need char
# Line 1434  Need char = 'a' Line 1400  Need char = 'a'
1400    
1401  /a{0,3}/I  /a{0,3}/I
1402  Capturing subpattern count = 0  Capturing subpattern count = 0
1403    May match empty string
1404  No options  No options
1405  No first char  No first char
1406  No need char  No need char
# Line 1476  Need char = 'r' Line 1443  Need char = 'r'
1443    
1444  /...(?<=abc)/I  /...(?<=abc)/I
1445  Capturing subpattern count = 0  Capturing subpattern count = 0
1446    Max lookbehind = 3
1447  No options  No options
1448  No first char  No first char
1449  No need char  No need char
# Line 1632  Need char = 'e' Line 1600  Need char = 'e'
1600    
1601  /a?b?/I  /a?b?/I
1602  Capturing subpattern count = 0  Capturing subpattern count = 0
1603    May match empty string
1604  No options  No options
1605  No first char  No first char
1606  No need char  No need char
# Line 1650  No match Line 1619  No match
1619    
1620  /|-/I  /|-/I
1621  Capturing subpattern count = 0  Capturing subpattern count = 0
1622    May match empty string
1623  No options  No options
1624  No first char  No first char
1625  No need char  No need char
# Line 1664  No need char Line 1634  No need char
1634      \Nabc      \Nabc
1635  No match  No match
1636    
 /a*(b+)(z)(z)/P  
     aaaabbbbzzzz  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O0  
     aaaabbbbzzzz\O1  
  0: aaaabbbbzz  
     aaaabbbbzzzz\O2  
  0: aaaabbbbzz  
  1: bbbb  
     aaaabbbbzzzz\O3  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
     aaaabbbbzzzz\O4  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O5  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
   
1637  /^.?abcd/IS  /^.?abcd/IS
1638  Capturing subpattern count = 0  Capturing subpattern count = 0
1639  Options: anchored  Options: anchored
# Line 2690  Need char = '-' Line 2633  Need char = '-'
2633          End          End
2634  ------------------------------------------------------------------  ------------------------------------------------------------------
2635  Capturing subpattern count = 0  Capturing subpattern count = 0
2636    May match empty string
2637  Options: extended  Options: extended
2638  No first char  No first char
2639  No need char  No need char
# Line 2709  No need char Line 2653  No need char
2653  /[\s]/DZ  /[\s]/DZ
2654  ------------------------------------------------------------------  ------------------------------------------------------------------
2655          Bra          Bra
2656          [\x09\x0a\x0c\x0d ]          [\x09-\x0d ]
2657          Ket          Ket
2658          End          End
2659  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2721  No need char Line 2665  No need char
2665  /[\S]/DZ  /[\S]/DZ
2666  ------------------------------------------------------------------  ------------------------------------------------------------------
2667          Bra          Bra
2668          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)          [\x00-\x08\x0e-\x1f!-\xff] (neg)
2669          Ket          Ket
2670          End          End
2671  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2734  No need char Line 2678  No need char
2678  ------------------------------------------------------------------  ------------------------------------------------------------------
2679          Bra          Bra
2680          a          a
2681       01 Opt       /i b
      NC b  
2682          Ket          Ket
2683          End          End
2684  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2757  No match Line 2700  No match
2700          Bra          Bra
2701          CBra 1          CBra 1
2702          a          a
2703       01 Opt       /i b
      NC b  
2704          Ket          Ket
      00 Opt  
2705          Ket          Ket
2706          End          End
2707  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2782  No match Line 2723  No match
2723  /   (?i)abc/IxDZ  /   (?i)abc/IxDZ
2724  ------------------------------------------------------------------  ------------------------------------------------------------------
2725          Bra          Bra
2726       NC abc       /i abc
2727          Ket          Ket
2728          End          End
2729  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2795  Need char = 'c' (caseless) Line 2736  Need char = 'c' (caseless)
2736    (?i)abc/IxDZ    (?i)abc/IxDZ
2737  ------------------------------------------------------------------  ------------------------------------------------------------------
2738          Bra          Bra
2739       NC abc       /i abc
2740          Ket          Ket
2741          End          End
2742  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2835  Need char = '0' Line 2776  Need char = '0'
2776          End          End
2777  ------------------------------------------------------------------  ------------------------------------------------------------------
2778  Capturing subpattern count = 0  Capturing subpattern count = 0
2779    May match empty string
2780  No options  No options
2781  No first char  No first char
2782  No need char  No need char
# Line 2934  No match Line 2876  No match
2876          End          End
2877  ------------------------------------------------------------------  ------------------------------------------------------------------
2878  Capturing subpattern count = 0  Capturing subpattern count = 0
2879    May match empty string
2880  No options  No options
2881  No first char  No first char
2882  No need char  No need char
# Line 2950  No options Line 2893  No options
2893  First char = 'x'  First char = 'x'
2894  No need char  No need char
2895    
2896  /x{1,3}+/DZ  /x{1,3}+/BZO
2897  ------------------------------------------------------------------  ------------------------------------------------------------------
2898          Bra          Bra
         Once  
2899          x          x
2900          x{0,2}          x{0,2}+
2901          Ket          Ket
2902            End
2903    ------------------------------------------------------------------
2904    
2905    /x{1,3}+/BZOi
2906    ------------------------------------------------------------------
2907            Bra
2908         /i x
2909         /i x{0,2}+
2910            Ket
2911            End
2912    ------------------------------------------------------------------
2913    
2914    /[^x]{1,3}+/BZO
2915    ------------------------------------------------------------------
2916            Bra
2917            [^x]
2918            [^x]{0,2}+
2919            Ket
2920            End
2921    ------------------------------------------------------------------
2922    
2923    /[^x]{1,3}+/BZOi
2924    ------------------------------------------------------------------
2925            Bra
2926         /i [^x]
2927         /i [^x]{0,2}+
2928          Ket          Ket
2929          End          End
2930  ------------------------------------------------------------------  ------------------------------------------------------------------
 Capturing subpattern count = 0  
 No options  
 First char = 'x'  
 No need char  
2931    
2932  /(x)*+/DZ  /(x)*+/DZ
2933  ------------------------------------------------------------------  ------------------------------------------------------------------
2934          Bra          Bra
2935          Once          Braposzero
2936          Brazero          CBraPos 1
         CBra 1  
2937          x          x
2938          KetRmax          KetRpos
         Ket  
2939          Ket          Ket
2940          End          End
2941  ------------------------------------------------------------------  ------------------------------------------------------------------
2942  Capturing subpattern count = 1  Capturing subpattern count = 1
2943    May match empty string
2944  No options  No options
2945  No first char  No first char
2946  No need char  No need char
2947    
2948  /^(\w++|\s++)*$/I  /^(\w++|\s++)*$/I
2949  Capturing subpattern count = 1  Capturing subpattern count = 1
2950    May match empty string
2951  Options: anchored  Options: anchored
2952  No first char  No first char
2953  No need char  No need char
# Line 3145  Need char = 'b' Line 3109  Need char = 'b'
3109          [bc]+          [bc]+
3110          Ket          Ket
3111          CBra 5          CBra 5
3112          \w*          \w*+
3113          Ket          Ket
3114          Ket          Ket
3115          Ket          Ket
# Line 3198  Failed: POSIX collating elements are not Line 3162  Failed: POSIX collating elements are not
3162  Failed: POSIX named classes are supported only within a class at offset 0  Failed: POSIX named classes are supported only within a class at offset 0
3163    
3164  /\l/I  /\l/I
3165  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3166    
3167  /\L/I  /\L/I
3168  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3169    
3170  /\N{name}/I  /\N{name}/I
3171  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3172    
3173  /\u/I  /\u/I
3174  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3175    
3176  /\U/I  /\U/I
3177  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3178    
3179  /[/I  /[/I
3180  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
# Line 3224  Failed: missing terminating ] for charac Line 3188  Failed: missing terminating ] for charac
3188  /[\s]/IDZ  /[\s]/IDZ
3189  ------------------------------------------------------------------  ------------------------------------------------------------------
3190          Bra          Bra
3191          [\x09\x0a\x0c\x0d ]          [\x09-\x0d ]
3192          Ket          Ket
3193          End          End
3194  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3288  No match Line 3252  No match
3252          End          End
3253  ------------------------------------------------------------------  ------------------------------------------------------------------
3254  Capturing subpattern count = 0  Capturing subpattern count = 0
3255    Max lookbehind = 1
3256  No options  No options
3257  First char = '8'  First char = '8'
3258  Need char = 'X'  Need char = 'X'
# Line 3301  Need char = 'X' Line 3266  Need char = 'X'
3266          End          End
3267  ------------------------------------------------------------------  ------------------------------------------------------------------
3268  Capturing subpattern count = 0  Capturing subpattern count = 0
3269    Max lookbehind = 1
3270  No options  No options
3271  First char = '$'  First char = '$'
3272  Need char = 'X'  Need char = 'X'
# Line 3357  Need char = 'b' Line 3323  Need char = 'b'
3323    
3324  /(?=a).*/I  /(?=a).*/I
3325  Capturing subpattern count = 0  Capturing subpattern count = 0
3326    May match empty string
3327  No options  No options
3328  First char = 'a'  First char = 'a'
3329  No need char  No need char
# Line 3375  Need char = 'z' (caseless) Line 3342  Need char = 'z' (caseless)
3342    
3343  /(?=a)(?=b)/I  /(?=a)(?=b)/I
3344  Capturing subpattern count = 0  Capturing subpattern count = 0
3345    May match empty string
3346  No options  No options
3347  First char = 'a'  First char = 'a'
3348  No need char  No need char
# Line 3441  Need char = 'a' Line 3409  Need char = 'a'
3409    
3410  /(a)*/I  /(a)*/I
3411  Capturing subpattern count = 1  Capturing subpattern count = 1
3412    May match empty string
3413  No options  No options
3414  No first char  No first char
3415  No need char  No need char
# Line 3560  Need char = 'f' Line 3529  Need char = 'f'
3529    1    ^    ^     f    1    ^    ^     f
3530   0: abcdef   0: abcdef
3531    
3532  /(?C1)\dabc(?C2)def/I  /(?C1)\dabc(?C2)def/IS
3533    Capturing subpattern count = 0
3534    No options
3535    No first char
3536    Need char = 'f'
3537    Subject length lower bound = 7
3538    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3539        1234abcdef
3540    --->1234abcdef
3541      1 ^              \d
3542      1  ^             \d
3543      1   ^            \d
3544      1    ^           \d
3545      2    ^   ^       d
3546     0: 4abcdef
3547        *** Failers
3548    No match
3549        abcdef
3550    No match
3551    
3552    /(?C1)\dabc(?C2)def/ISS
3553  Capturing subpattern count = 0  Capturing subpattern count = 0
3554  No options  No options
3555  No first char  No first char
# Line 3649  No match Line 3638  No match
3638    
3639  /(?C0)(abc(?C1))*/I  /(?C0)(abc(?C1))*/I
3640  Capturing subpattern count = 1  Capturing subpattern count = 1
3641    May match empty string
3642  No options  No options
3643  No first char  No first char
3644  No need char  No need char
# Line 3682  No need char Line 3672  No need char
3672    
3673  /(\d{3}(?C))*/I  /(\d{3}(?C))*/I
3674  Capturing subpattern count = 1  Capturing subpattern count = 1
3675    May match empty string
3676  No options  No options
3677  No first char  No first char
3678  No need char  No need char
# Line 3796  Callout 2: last capture = -1 Line 3787  Callout 2: last capture = -1
3787    
3788  /(?<=(abc)(?C))xyz/I  /(?<=(abc)(?C))xyz/I
3789  Capturing subpattern count = 1  Capturing subpattern count = 1
3790    Max lookbehind = 3
3791  No options  No options
3792  First char = 'x'  First char = 'x'
3793  Need char = 'z'  Need char = 'z'
# Line 3817  Need char = 'b' Line 3809  Need char = 'b'
3809  --->abbbbbccc  --->abbbbbccc
3810    1 ^        ^    1 ^        ^
3811  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  
3812  No match  No match
3813    
3814  /a(b+?)(c*?)(?C1)/I  /a(b+?)(c*?)(?C1)/I
# Line 3927  Failed: recursive call could loop indefi Line 3905  Failed: recursive call could loop indefi
3905    
3906  /^([^()]|\((?1)*\))*$/I  /^([^()]|\((?1)*\))*$/I
3907  Capturing subpattern count = 1  Capturing subpattern count = 1
3908    May match empty string
3909  Options: anchored  Options: anchored
3910  No first char  No first char
3911  No need char  No need char
# Line 3964  Need char = '<' Line 3943  Need char = '<'
3943          Bra          Bra
3944          CBra 1          CBra 1
3945          a          a
         Once  
3946          Recurse          Recurse
         Ket  
3947          b          b
3948          Ket          Ket
3949          Ket          Ket
# Line 4187  Need char = 'a' Line 4164  Need char = 'a'
4164          Any          Any
4165          \1          \1
4166          bbb          bbb
         Once  
4167          Recurse          Recurse
         Ket  
4168          d          d
4169          Ket          Ket
4170          End          End
# Line 4210  Named capturing subpatterns: Line 4185  Named capturing subpatterns:
4185    one     1    one     1
4186    three   3    three   3
4187    two     2    two     2
4188    May match empty string
4189  Options: anchored caseless  Options: anchored caseless
4190  No first char  No first char
4191  No need char  No need char
# Line 4309  Need char = 'z' Line 4285  Need char = 'z'
4285    
4286  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4287  Capturing subpattern count = 31  Capturing subpattern count = 31
4288    May match empty string
4289  Options: anchored dotall  Options: anchored dotall
4290  No first char  No first char
4291  No need char  No need char
# Line 4316  No need char Line 4293  No need char
4293  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4294  Capturing subpattern count = 31  Capturing subpattern count = 31
4295  Max back reference = 31  Max back reference = 31
4296    May match empty string
4297  Options: dotall  Options: dotall
4298  No first char  No first char
4299  No need char  No need char
# Line 4323  No need char Line 4301  No need char
4301  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4302  Capturing subpattern count = 32  Capturing subpattern count = 32
4303  Max back reference = 32  Max back reference = 32
4304    May match empty string
4305  Options: dotall  Options: dotall
4306  No first char  No first char
4307  No need char  No need char
# Line 4399  Minimum match() recursion limit = 6 Line 4378  Minimum match() recursion limit = 6
4378   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4379    aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
4380  Minimum match() limit = 32768  Minimum match() limit = 32768
4381  Minimum match() recursion limit = 42  Minimum match() recursion limit = 29
4382  No match  No match
4383    
4384  /(aaa(?C1)bbb|ab)/I  /(aaa(?C1)bbb|ab)/I
# Line 4474  Capturing subpattern count = 2 Line 4453  Capturing subpattern count = 2
4453  Named capturing subpatterns:  Named capturing subpatterns:
4454    Tes    1    Tes    1
4455    Test   2    Test   2
4456    May match empty string
4457  No options  No options
4458  No first char  No first char
4459  No need char  No need char
# Line 4492  Capturing subpattern count = 2 Line 4472  Capturing subpattern count = 2
4472  Named capturing subpatterns:  Named capturing subpatterns:
4473    Tes    2    Tes    2
4474    Test   1    Test   1
4475    May match empty string
4476  No options  No options
4477  No first char  No first char
4478  No need char  No need char
# Line 4561  Need char = ']' Line 4542  Need char = ']'
4542          a          a
4543          CBra 2          CBra 2
4544          b          b
         Once  
4545          Recurse          Recurse
         Ket  
4546          c          c
4547          Ket          Ket
4548          Ket          Ket
# Line 4571  Need char = ']' Line 4550  Need char = ']'
4550          End          End
4551  ------------------------------------------------------------------  ------------------------------------------------------------------
4552  Capturing subpattern count = 2  Capturing subpattern count = 2
4553    May match empty string
4554  No options  No options
4555  No first char  No first char
4556  No need char  No need char
# Line 4583  No need char Line 4563  No need char
4563          a          a
4564          CBra 2          CBra 2
4565          b          b
         Once  
4566          Recurse          Recurse
         Ket  
4567          c          c
4568          Ket          Ket
4569          KetRmax          KetRmax
# Line 4593  No need char Line 4571  No need char
4571          End          End
4572  ------------------------------------------------------------------  ------------------------------------------------------------------
4573  Capturing subpattern count = 2  Capturing subpattern count = 2
4574    May match empty string
4575  No options  No options
4576  No first char  No first char
4577  No need char  No need char
# Line 4606  No need char Line 4585  No need char
4585          a          a
4586          CBra 2          CBra 2
4587          b          b
         Once  
4588          Recurse          Recurse
         Ket  
4589          c          c
4590          Ket          Ket
4591          Ket          Ket
# Line 4617  No need char Line 4594  No need char
4594          a          a
4595          CBra 2          CBra 2
4596          b          b
         Once  
4597          Recurse          Recurse
         Ket  
4598          c          c
4599          Ket          Ket
4600          Ket          Ket
# Line 4628  No need char Line 4603  No need char
4603          End          End
4604  ------------------------------------------------------------------  ------------------------------------------------------------------
4605  Capturing subpattern count = 2  Capturing subpattern count = 2
4606    May match empty string
4607  No options  No options
4608  No first char  No first char
4609  No need char  No need char
# Line 4635  No need char Line 4611  No need char
4611  /[ab]{1}+/DZ  /[ab]{1}+/DZ
4612  ------------------------------------------------------------------  ------------------------------------------------------------------
4613          Bra          Bra
4614          Once          [ab]{1,1}+
         [ab]{1,1}  
         Ket  
4615          Ket          Ket
4616          End          End
4617  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4758  Need char = 'e' Line 4732  Need char = 'e'
4732   +4 ^   ^      e   +4 ^   ^      e
4733  No match  No match
4734    
4735  /a*b/ICDZ  /a*b/ICDZS
4736    ------------------------------------------------------------------
4737            Bra
4738            Callout 255 0 2
4739            a*+
4740            Callout 255 2 1
4741            b
4742            Callout 255 3 0
4743            Ket
4744            End
4745    ------------------------------------------------------------------
4746    Capturing subpattern count = 0
4747    Options:
4748    No first char
4749    Need char = 'b'
4750    Subject length lower bound = 1
4751    Starting byte set: a b
4752      ab
4753    --->ab
4754     +0 ^      a*
4755     +2 ^^     b
4756     +3 ^ ^
4757     0: ab
4758      aaaab
4759    --->aaaab
4760     +0 ^         a*
4761     +2 ^   ^     b
4762     +3 ^    ^
4763     0: aaaab
4764      aaaacb
4765    --->aaaacb
4766     +0 ^          a*
4767     +2 ^   ^      b
4768     +0  ^         a*
4769     +2  ^  ^      b
4770     +0   ^        a*
4771     +2   ^ ^      b
4772     +0    ^       a*
4773     +2    ^^      b
4774     +0      ^     a*
4775     +2      ^     b
4776     +3      ^^
4777     0: b
4778    
4779    /a*b/ICDZSS
4780  ------------------------------------------------------------------  ------------------------------------------------------------------
4781          Bra          Bra
4782          Callout 255 0 2          Callout 255 0 2
# Line 4841  Need char = 'b' Line 4859  Need char = 'b'
4859   +2    ^^      b   +2    ^^      b
4860  No match  No match
4861    
4862  /(abc|def)x/ICDZ  /(abc|def)x/ICDZS
4863  ------------------------------------------------------------------  ------------------------------------------------------------------
4864          Bra          Bra
4865          Callout 255 0 9          Callout 255 0 9
# Line 4872  Capturing subpattern count = 1 Line 4890  Capturing subpattern count = 1
4890  Options:  Options:
4891  No first char  No first char
4892  Need char = 'x'  Need char = 'x'
4893    Subject length lower bound = 4
4894    Starting byte set: a d
4895    abcx    abcx
4896  --->abcx  --->abcx
4897   +0 ^        (abc|def)   +0 ^        (abc|def)
# Line 4895  Need char = 'x' Line 4915  Need char = 'x'
4915  +10 ^   ^  +10 ^   ^
4916   0: defx   0: defx
4917   1: def   1: def
4918      ** Failers
4919    No match
4920    abcdefzx    abcdefzx
4921  --->abcdefzx  --->abcdefzx
4922   +0 ^            (abc|def)   +0 ^            (abc|def)
# Line 4904  Need char = 'x' Line 4926  Need char = 'x'
4926   +4 ^  ^         |   +4 ^  ^         |
4927   +9 ^  ^         x   +9 ^  ^         x
4928   +5 ^            d   +5 ^            d
  +0  ^           (abc|def)  
  +1  ^           a  
  +5  ^           d  
  +0   ^          (abc|def)  
  +1   ^          a  
  +5   ^          d  
4929   +0    ^         (abc|def)   +0    ^         (abc|def)
4930   +1    ^         a   +1    ^         a
4931   +5    ^         d   +5    ^         d
# Line 4917  Need char = 'x' Line 4933  Need char = 'x'
4933   +7    ^ ^       f   +7    ^ ^       f
4934   +8    ^  ^      )   +8    ^  ^      )
4935   +9    ^  ^      x   +9    ^  ^      x
  +0     ^        (abc|def)  
  +1     ^        a  
  +5     ^        d  
  +0      ^       (abc|def)  
  +1      ^       a  
  +5      ^       d  
  +0       ^      (abc|def)  
  +1       ^      a  
  +5       ^      d  
  +0        ^     (abc|def)  
  +1        ^     a  
  +5        ^     d  
4936  No match  No match
4937    
4938  /(ab|cd){3,4}/IC  /(abc|def)x/ICDZSS
4939    ------------------------------------------------------------------
4940            Bra
4941            Callout 255 0 9
4942            CBra 1
4943            Callout 255 1 1
4944            a
4945            Callout 255 2 1
4946            b
4947            Callout 255 3 1
4948            c
4949            Callout 255 4 0
4950            Alt
4951            Callout 255 5 1
4952            d
4953            Callout 255 6 1
4954            e
4955            Callout 255 7 1
4956            f
4957            Callout 255 8 0
4958            Ket
4959            Callout 255 9 1
4960            x
4961            Callout 255 10 0
4962            Ket
4963            End
4964    ------------------------------------------------------------------
4965  Capturing subpattern count = 1  Capturing subpattern count = 1
4966  Options:  Options:
4967  No first char  No first char
4968  No need char  Need char = 'x'
4969    ababab    abcx
4970  --->ababab  --->abcx
4971   +0 ^          (ab|cd){3,4}   +0 ^        (abc|def)
4972     +1 ^        a
4973     +2 ^^       b
4974     +3 ^ ^      c
4975     +4 ^  ^     |
4976     +9 ^  ^     x
4977    +10 ^   ^
4978     0: abcx
4979     1: abc
4980      defx
4981    --->defx
4982     +0 ^        (abc|def)
4983     +1 ^        a
4984     +5 ^        d
4985     +6 ^^       e
4986     +7 ^ ^      f
4987     +8 ^  ^     )
4988     +9 ^  ^     x
4989    +10 ^   ^
4990     0: defx
4991     1: def
4992      ** Failers
4993    No match
4994      abcdefzx
4995    --->abcdefzx
4996     +0 ^            (abc|def)
4997     +1 ^            a
4998     +2 ^^           b
4999     +3 ^ ^          c
5000     +4 ^  ^         |
5001     +9 ^  ^         x
5002     +5 ^            d
5003     +0  ^           (abc|def)
5004     +1  ^           a
5005     +5  ^           d
5006     +0   ^          (abc|def)
5007     +1   ^          a
5008     +5   ^          d
5009     +0    ^         (abc|def)
5010     +1    ^         a
5011     +5    ^         d
5012     +6    ^^        e
5013     +7    ^ ^       f
5014     +8    ^  ^      )
5015     +9    ^  ^      x
5016     +0     ^        (abc|def)
5017     +1     ^        a
5018     +5     ^        d
5019     +0      ^       (abc|def)
5020     +1      ^       a
5021     +5      ^       d
5022     +0       ^      (abc|def)
5023     +1       ^      a
5024     +5       ^      d
5025     +0        ^     (abc|def)
5026     +1        ^     a
5027     +5        ^     d
5028    No match
5029    
5030    /(ab|cd){3,4}/IC
5031    Capturing subpattern count = 1
5032    Options:
5033    No first char
5034    No need char
5035      ababab
5036    --->ababab
5037     +0 ^          (ab|cd){3,4}
5038   +1 ^          a   +1 ^          a
5039   +2 ^^         b   +2 ^^         b
5040   +3 ^ ^        |   +3 ^ ^        |
# Line 4995  No need char Line 5091  No need char
5091   0: abcdcdcd   0: abcdcdcd
5092   1: cd   1: cd
5093    
5094  /([ab]{,4}c|xy)/ICDZ  /([ab]{,4}c|xy)/ICDZS
5095    ------------------------------------------------------------------
5096            Bra
5097            Callout 255 0 14
5098            CBra 1
5099            Callout 255 1 4
5100            [ab]
5101            Callout 255 5 1
5102            {
5103            Callout 255 6 1
5104            ,
5105            Callout 255 7 1
5106            4
5107            Callout 255 8 1
5108            }
5109            Callout 255 9 1
5110            c
5111            Callout 255 10 0
5112            Alt
5113            Callout 255 11 1
5114            x
5115            Callout 255 12 1
5116            y
5117            Callout 255 13 0
5118            Ket
5119            Callout 255 14 0
5120            Ket
5121            End
5122    ------------------------------------------------------------------
5123    Capturing subpattern count = 1
5124    Options:
5125    No first char
5126    No need char
5127    Subject length lower bound = 2
5128    Starting byte set: a b x
5129        Note: that { does NOT introduce a quantifier
5130    --->Note: that { does NOT introduce a quantifier
5131     +0         ^                                        ([ab]{,4}c|xy)
5132     +1         ^                                        [ab]
5133     +5         ^^                                       {
5134    +11         ^                                        x
5135     +0                                 ^                ([ab]{,4}c|xy)
5136     +1                                 ^                [ab]
5137     +5                                 ^^               {
5138    +11                                 ^                x
5139     +0                                     ^            ([ab]{,4}c|xy)
5140     +1                                     ^            [ab]
5141     +5                                     ^^           {
5142    +11                                     ^            x
5143    No match
5144    
5145    /([ab]{,4}c|xy)/ICDZSS
5146  ------------------------------------------------------------------  ------------------------------------------------------------------
5147          Bra          Bra
5148          Callout 255 0 14          Callout 255 0 14
# Line 5176  No match Line 5323  No match
5323          Callout 255 0 21          Callout 255 0 21
5324          CBra 1          CBra 1
5325          Callout 255 1 9          Callout 255 1 9
5326          [ab]{1,4}          [ab]{1,4}+
5327          Callout 255 10 1          Callout 255 10 1
5328          c          c
5329          Callout 255 11 0          Callout 255 11 0
# Line 5189  No match Line 5336  No match
5336          Ket          Ket
5337          CBra 1          CBra 1
5338          Callout 255 1 9          Callout 255 1 9
5339          [ab]{1,4}          [ab]{1,4}+
5340          Callout 255 10 1          Callout 255 10 1
5341          c          c
5342          Callout 255 11 0          Callout 255 11 0
# Line 5202  No match Line 5349  No match
5349          Ket          Ket
5350          CBra 1          CBra 1
5351          Callout 255 1 9          Callout 255 1 9
5352          [ab]{1,4}          [ab]{1,4}+
5353          Callout 255 10 1          Callout 255 10 1
5354          c          c
5355          Callout 255 11 0          Callout 255 11 0
# Line 5215  No match Line 5362  No match
5362          Ket          Ket
5363          CBra 1          CBra 1
5364          Callout 255 1 9          Callout 255 1 9
5365          [ab]{1,4}          [ab]{1,4}+
5366          Callout 255 10 1          Callout 255 10 1
5367          c          c
5368          Callout 255 11 0          Callout 255 11 0
# Line 5229  No match Line 5376  No match
5376          Braminzero          Braminzero
5377          CBra 1          CBra 1
5378          Callout 255 1 9          Callout 255 1 9
5379          [ab]{1,4}          [ab]{1,4}+
5380          Callout 255 10 1          Callout 255 10 1
5381          c          c
5382          Callout 255 11 0          Callout 255 11 0
# Line 5282  Need char = '3' Line 5429  Need char = '3'
5429    
5430  /\b.*/I  /\b.*/I
5431  Capturing subpattern count = 0  Capturing subpattern count = 0
5432    Max lookbehind = 1
5433    May match empty string
5434  No options  No options
5435  No first char  No first char
5436  No need char  No need char
# Line 5290  No need char Line 5439  No need char
5439    
5440  /\b.*/Is  /\b.*/Is
5441  Capturing subpattern count = 0  Capturing subpattern count = 0
5442    Max lookbehind = 1
5443    May match empty string
5444  Options: dotall  Options: dotall
5445  No first char  No first char
5446  No need char  No need char
# Line 5298  No need char Line 5449  No need char
5449    
5450  /(?!.bcd).*/I  /(?!.bcd).*/I
5451  Capturing subpattern count = 0  Capturing subpattern count = 0
5452    May match empty string
5453  No options  No options
5454  No first char  No first char
5455  No need char  No need char
# Line 5447  No match Line 5599  No match
5599      123456\P      123456\P
5600  No match  No match
5601    
5602  /abc/I>testsavedregex  /abc/IS>testsavedregex
5603    Capturing subpattern count = 0
5604    No options
5605    First char = 'a'
5606    Need char = 'c'
5607    Subject length lower bound = 3
5608    No set of starting bytes
5609    Compiled pattern written to testsavedregex
5610    Study data written to testsavedregex
5611    <testsavedregex
5612    Compiled pattern loaded from testsavedregex
5613    Study data loaded from testsavedregex
5614        abc
5615     0: abc
5616        ** Failers
5617    No match
5618        bca
5619    No match
5620    
5621    /abc/ISS>testsavedregex
5622  Capturing subpattern count = 0  Capturing subpattern count = 0
5623  No options  No options
5624  First char = 'a'  First char = 'a'
5625  Need char = 'c'  Need char = 'c'
5626  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5627  <testsavedregex  <testsavedregex
5628  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5629  No study data  No study data
5630      abc      abc
5631   0: abc   0: abc
# Line 5463  No match Line 5634  No match
5634      bca      bca
5635  No match  No match
5636    
5637  /abc/IF>testsavedregex  /abc/IFS>testsavedregex
5638    Capturing subpattern count = 0
5639    No options
5640    First char = 'a'
5641    Need char = 'c'
5642    Subject length lower bound = 3
5643    No set of starting bytes
5644    Compiled pattern written to testsavedregex
5645    Study data written to testsavedregex
5646    <testsavedregex
5647    Compiled pattern (byte-inverted) loaded from testsavedregex
5648    Study data loaded from testsavedregex
5649        abc
5650     0: abc
5651        ** Failers
5652    No match
5653        bca
5654    No match
5655    
5656    /abc/IFSS>testsavedregex
5657  Capturing subpattern count = 0  Capturing subpattern count = 0
5658  No options  No options
5659  First char = 'a'  First char = 'a'
5660  Need char = 'c'  Need char = 'c'
5661  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5662  <testsavedregex  <testsavedregex
5663  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5664  No study data  No study data
5665      abc      abc
5666   0: abc   0: abc
# Line 5486  No first char Line 5676  No first char
5676  No need char  No need char
5677  Subject length lower bound = 1  Subject length lower bound = 1
5678  Starting byte set: a b  Starting byte set: a b
5679  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5680  Study data written to testsavedregex  Study data written to testsavedregex
5681  <testsavedregex  <testsavedregex
5682  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5683  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5684      abc      abc
5685   0: a   0: a
# Line 5500  Study data loaded from testsavedregex Line 5690  Study data loaded from testsavedregex
5690      def      def
5691  No match  No match
5692    
5693    /(a|b)/ISS>testsavedregex
5694    Capturing subpattern count = 1
5695    No options
5696    No first char
5697    No need char
5698    Compiled pattern written to testsavedregex
5699    <testsavedregex
5700    Compiled pattern loaded from testsavedregex
5701    No study data
5702        abc
5703     0: a
5704     1: a
5705        ** Failers
5706     0: a
5707     1: a
5708        def
5709    No match
5710    
5711  /(a|b)/ISF>testsavedregex  /(a|b)/ISF>testsavedregex
5712  Capturing subpattern count = 1  Capturing subpattern count = 1
5713  No options  No options
# Line 5507  No first char Line 5715  No first char
5715  No need char  No need char
5716  Subject length lower bound = 1  Subject length lower bound = 1
5717  Starting byte set: a b  Starting byte set: a b
5718  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5719  Study data written to testsavedregex  Study data written to testsavedregex
5720  <testsavedregex  <testsavedregex
5721  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5722  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5723      abc      abc
5724   0: a   0: a
# Line 5521  Study data loaded from testsavedregex Line 5729  Study data loaded from testsavedregex
5729      def      def
5730  No match  No match
5731    
5732    /(a|b)/ISSF>testsavedregex
5733    Capturing subpattern count = 1
5734    No options
5735    No first char
5736    No need char
5737    Compiled pattern written to testsavedregex
5738    <testsavedregex
5739    Compiled pattern (byte-inverted) loaded from testsavedregex
5740    No study data
5741        abc
5742     0: a
5743     1: a
5744        ** Failers
5745     0: a
5746     1: a
5747        def
5748    No match
5749    
5750  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5751  Capturing subpattern count = 3  Capturing subpattern count = 3
5752  Max back reference = 1  Max back reference = 1
5753  Options: multiline dotall  Options: multiline dotall
5754  First char = '<'  First char = '<'
5755  Need char = '>'  Need char = '>'
5756      <!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>      \J1024<!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>
5757   0: <seite>\x0a<dokumenteninformation>\x0a<seitentitel>Partner der LCO</seitentitel>\x0a<sprache>de</sprache>\x0a<seitenbeschreibung>Partner der LINEAS Consulting\x0aGmbH</seitenbeschreibung>\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\x0aPartnerfirmen</schluesselworte>\x0a<revisit>30 days</revisit>\x0a<robots>index,follow</robots>\x0a<menueinformation>\x0a<aktiv>ja</aktiv>\x0a<menueposition>3</menueposition>\x0a<menuetext>Partner</menuetext>\x0a</menueinformation>\x0a<lastedited>\x0a<autor>LCO</autor>\x0a<firma>LINEAS Consulting</firma>\x0a<datum>15.10.2003</datum>\x0a</lastedited>\x0a</dokumenteninformation>\x0a<inhalt>\x0a\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\x0aGmbH</absatzueberschrift>\x0a\x0a<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\x0a<bild name="logo_ca.gif" rahmen="no"/></link> <link\x0aziel="http://www.ey.com/" zielfenster="_blank"><bild\x0aname="logo_euy.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\x0a<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.atelion.de/"\x0azielfenster="_blank"><bild\x0aname="logo_atelion.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.line-information.de/"\x0azielfenster="_blank">\x0a<bild name="logo_line_information.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\x0a\x0a<absatz><link ziel="http://www.incognis.de/"\x0azielfenster="_blank"><bild\x0aname="logo_incognis.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.addcraft.com/"\x0azielfenster="_blank"><bild\x0aname="logo_addcraft.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.comendo.com/"\x0azielfenster="_blank"><bild\x0aname="logo_comendo.gif" rahmen="no"/></link></absatz>\x0a\x0a</inhalt>\x0a</seite>   0: <seite>\x0a<dokumenteninformation>\x0a<seitentitel>Partner der LCO</seitentitel>\x0a<sprache>de</sprache>\x0a<seitenbeschreibung>Partner der LINEAS Consulting\x0aGmbH</seitenbeschreibung>\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\x0aPartnerfirmen</schluesselworte>\x0a<revisit>30 days</revisit>\x0a<robots>index,follow</robots>\x0a<menueinformation>\x0a<aktiv>ja</aktiv>\x0a<menueposition>3</menueposition>\x0a<menuetext>Partner</menuetext>\x0a</menueinformation>\x0a<lastedited>\x0a<autor>LCO</autor>\x0a<firma>LINEAS Consulting</firma>\x0a<datum>15.10.2003</datum>\x0a</lastedited>\x0a</dokumenteninformation>\x0a<inhalt>\x0a\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\x0aGmbH</absatzueberschrift>\x0a\x0a<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\x0a<bild name="logo_ca.gif" rahmen="no"/></link> <link\x0aziel="http://www.ey.com/" zielfenster="_blank"><bild\x0aname="logo_euy.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\x0a<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.atelion.de/"\x0azielfenster="_blank"><bild\x0aname="logo_atelion.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.line-information.de/"\x0azielfenster="_blank">\x0a<bild name="logo_line_information.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\x0a\x0a<absatz><link ziel="http://www.incognis.de/"\x0azielfenster="_blank"><bild\x0aname="logo_incognis.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.addcraft.com/"\x0azielfenster="_blank"><bild\x0aname="logo_addcraft.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.comendo.com/"\x0azielfenster="_blank"><bild\x0aname="logo_comendo.gif" rahmen="no"/></link></absatz>\x0a\x0a</inhalt>\x0a</seite>
5758   1: seite   1: seite
5759   2: \x0a   2: \x0a
# Line 5576  No match Line 5802  No match
5802      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5803  No match  No match
5804    
 /ab.cd/P  
     ab-cd  
  0: ab-cd  
     ab=cd  
  0: ab=cd  
     ** Failers  
 No match: POSIX code 17: match failed  
     ab\ncd  
 No match: POSIX code 17: match failed  
   
 /ab.cd/Ps  
     ab-cd  
  0: ab-cd  
     ab=cd  
  0: ab=cd  
     ab\ncd  
  0: ab\x0acd  
   
5805  /(?i)(?-i)AbCd/I  /(?i)(?-i)AbCd/I
5806  Capturing subpattern count = 0  Capturing subpattern count = 0
5807  No options  No options
# Line 5830  Matched, but too many substrings Line 6038  Matched, but too many substrings
6038    
6039  /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
6040  Capturing subpattern count = 0  Capturing subpattern count = 0
6041    May match empty string
6042  No options  No options
6043  No first char  No first char
6044  No need char  No need char
# Line 5842  No need char Line 6051  No need char
6051    
6052  /[^()]*(?:\((?>(?R))\)[^()]*)*/I  /[^()]*(?:\((?>(?R))\)[^()]*)*/I
6053  Capturing subpattern count = 0  Capturing subpattern count = 0
6054    May match empty string
6055  No options  No options
6056  No first char  No first char
6057  No need char  No need char
# Line 5852  No need char Line 6062  No need char
6062    
6063  /[^()]*(?:\((?R)\))*[^()]*/I  /[^()]*(?:\((?R)\))*[^()]*/I
6064  Capturing subpattern count = 0  Capturing subpattern count = 0
6065    May match empty string
6066  No options  No options
6067  No first char  No first char
6068  No need char  No need char
# Line 5862  No need char Line 6073  No need char
6073    
6074  /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
6075  Capturing subpattern count = 0  Capturing subpattern count = 0
6076    May match empty string
6077  No options  No options
6078  No first char  No first char
6079  No need char  No need char
# Line 5874  No need char Line 6086  No need char
6086    
6087  /(?:\((?R)\))|[^()]*/I  /(?:\((?R)\))|[^()]*/I
6088  Capturing subpattern count = 0  Capturing subpattern count = 0
6089    May match empty string
6090  No options  No options
6091  No first char  No first char
6092  No need char  No need char
# Line 5886  No need char Line 6099  No need char
6099      ((this))      ((this))
6100   0: ((this))   0: ((this))
6101    
 /a(b)c/PN  
     abc  
 Matched with REG_NOSUB  
   
 /a(?P<name>b)c/PN  
     abc  
 Matched with REG_NOSUB  
   
 /\x{100}/I  
 Failed: character value in \x{...} sequence is too large at offset 6  
   
6102  /\x{0000ff}/I  /\x{0000ff}/I
6103  Capturing subpattern count = 0  Capturing subpattern count = 0
6104  No options  No options
6105  First char = 255  First char = \xff
6106  No need char  No need char
6107    
6108  /^((?P<A>a1)|(?P<A>a2)b)/I  /^((?P<A>a1)|(?P<A>a2)b)/I
# Line 5934  no parentheses with name "Z" Line 6136  no parentheses with name "Z"
6136   2: a1   2: a1
6137  copy substring Z failed -7  copy substring Z failed -7
6138    C a1 (2) A    C a1 (2) A
6139    
6140    /(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/IJ
6141    Capturing subpattern count = 3
6142    Named capturing subpatterns:
6143      a   1
6144      a   3
6145      b   2
6146    May match empty string
6147    Options: dupnames
6148    No first char
6149    No need char
6150    
6151  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
6152  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 6010  no parentheses with name "Z" Line 6223  no parentheses with name "Z"
6223   0: a1   0: a1
6224   1: a1   1: a1
6225   2: a1   2: a1
6226  copy substring Z failed -7  get substring Z failed -7
6227    G a1 (2) A    G a1 (2) A
6228    
6229  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
# Line 6042  No need char Line 6255  No need char
6255    G a (1) A    G a (1) A
6256      cd\GA      cd\GA
6257   0: cd   0: cd
6258  copy substring A failed -7  get substring A failed -7
6259    
6260  /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ  /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6261  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 6210  No need char Line 6423  No need char
6423   9:   9:
6424  10: Y  10: Y
6425    
 /\777/I  
 Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3  
   
6426  /\s*,\s*/IS  /\s*,\s*/IS
6427  Capturing subpattern count = 0  Capturing subpattern count = 0
6428  No options  No options
6429  No first char  No first char
6430  Need char = ','  Need char = ','
6431  Subject length lower bound = 1  Subject length lower bound = 1
6432  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 ,
6433      \x0b,\x0b      \x0b,\x0b
6434   0: ,   0: \x0b,\x0b
6435      \x0c,\x0d      \x0c,\x0d
6436   0: \x0c,\x0d   0: \x0c,\x0d
6437    
# Line 6345  Unknown newline type at: <bad> Line 6555  Unknown newline type at: <bad>
6555    
6556  /.*/I<lf>  /.*/I<lf>
6557  Capturing subpattern count = 0  Capturing subpattern count = 0
6558    May match empty string
6559  Options:  Options:
6560  Forced newline sequence: LF  Forced newline sequence: LF
6561  First char at start or follows newline  First char at start or follows newline
# Line 6386  Need char = 'f' Line 6597  Need char = 'f'
6597    
6598  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6599  Capturing subpattern count = 1  Capturing subpattern count = 1
6600    May match empty string
6601  No options  No options
6602  No first char  No first char
6603  No need char  No need char
# Line 6644  No match Line 6856  No match
6856  ------------------------------------------------------------------  ------------------------------------------------------------------
6857          Bra          Bra
6858          ^          ^
6859          a*       /i a*
6860       NC A       /i A
6861          \d          \d
6862          Ket          Ket
6863          End          End
# Line 7273  Matched, but too many substrings Line 7485  Matched, but too many substrings
7485  /[^a]+a/BZi  /[^a]+a/BZi
7486  ------------------------------------------------------------------  ------------------------------------------------------------------
7487          Bra          Bra
7488          [^A]++       /i [^a]++
7489       NC a       /i a
7490          Ket          Ket
7491          End          End
7492  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7282  Matched, but too many substrings Line 7494  Matched, but too many substrings
7494  /[^a]+A/BZi  /[^a]+A/BZi
7495  ------------------------------------------------------------------  ------------------------------------------------------------------
7496          Bra          Bra
7497          [^A]++       /i [^a]++
7498       NC A       /i A
7499          Ket          Ket
7500          End          End
7501  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7309  Matched, but too many substrings Line 7521  Matched, but too many substrings
7521  /a*[^a]/BZ  /a*[^a]/BZ
7522  ------------------------------------------------------------------  ------------------------------------------------------------------
7523          Bra          Bra
7524          a*          a*+
7525          [^a]          [^a]
7526          Ket          Ket
7527          End          End
# Line 7451  No match Line 7663  No match
7663  ------------------------------------------------------------------  ------------------------------------------------------------------
7664          Bra          Bra
7665          ^          ^
7666          [a-z]+          [a-z]++
7667          Ket          Ket
7668          End          End
7669  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7478  No match Line 7690  No match
7690  ------------------------------------------------------------------  ------------------------------------------------------------------
7691          Bra          Bra
7692          ^          ^
         Once  
7693          Recurse          Recurse
         Ket  
7694          [()]          [()]
7695          CBra 1          CBra 1
7696          Ket          Ket
# Line 7494  No match Line 7704  No match
7704          ^          ^
7705          CBra 1          CBra 1
7706          Cond          Cond
7707        2 Cond nref        2 Cond ref
7708          y          y
7709          Ket          Ket
7710          [()]          [()]
# Line 7514  No match Line 7724  No match
7724  ------------------------------------------------------------------  ------------------------------------------------------------------
7725          Bra          Bra
7726          ^          ^
         Once  
7727          Recurse          Recurse
         Ket  
7728          ()          ()
7729          CBra 1          CBra 1
7730          Ket          Ket
# Line 7528  No match Line 7736  No match
7736  ------------------------------------------------------------------  ------------------------------------------------------------------
7737          Bra          Bra
7738          ^          ^
         Once  
7739          Recurse          Recurse
         Ket  
7740          [(\]a]          [(\]a]
7741          CBra 1          CBra 1
7742          Ket          Ket
# Line 7543  No match Line 7749  No match
7749  ------------------------------------------------------------------  ------------------------------------------------------------------
7750          Bra          Bra
7751          ^          ^
         Once  
7752          Recurse          Recurse
         Ket  
7753          CBra 1          CBra 1
7754          Ket          Ket
7755          Ket          Ket
# Line 7560  Named capturing subpatterns: Line 7764  Named capturing subpatterns:
7764    one     1    one     1
7765    three   3    three   3
7766    two     2    two     2
7767    May match empty string
7768  Options: anchored caseless  Options: anchored caseless
7769  No first char  No first char
7770  No need char  No need char
# Line 7677  Options: extended Line 7882  Options: extended
7882  First char = 'x'  First char = 'x'
7883  Need char = 'z'  Need char = 'z'
7884    
 /(?(DEFINE) abc){3} xyz/x  
 Failed: repeating a DEFINE group is not allowed at offset 17  
   
7885  /(a|)*\d/  /(a|)*\d/
7886    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7887  No match  No match
# Line 7997  No match Line 8199  No match
8199          Alt          Alt
8200          c          c
8201          Ket          Ket
         Once  
8202          Recurse          Recurse
8203          Ket          Ket
         Ket  
8204          End          End
8205  ------------------------------------------------------------------  ------------------------------------------------------------------
8206      abc      abc
# Line 8011  No match Line 8211  No match
8211  ------------------------------------------------------------------  ------------------------------------------------------------------
8212          Bra          Bra
8213          xy          xy
         Once  
8214          Recurse          Recurse
         Ket  
8215          CBra 1          CBra 1
8216          abc          abc
8217          Ket          Ket
# Line 8243  Failed: syntax error in subpattern name Line 8441  Failed: syntax error in subpattern name
8441   3: <unset>   3: <unset>
8442   4: x   4: x
8443    
8444  /[\h]/BZ  /\H++X/BZ
8445  ------------------------------------------------------------------  ------------------------------------------------------------------
8446          Bra          Bra
8447          [\x09 \xa0]          \H++
8448            X
8449          Ket          Ket
8450          End          End
8451  ------------------------------------------------------------------  ------------------------------------------------------------------
8452      >\x09<      ** Failers
8453   0: \x09  No match
8454        XXXX
8455  /[\h]+/BZ  No match
8456    
8457    /\H+\hY/BZ
8458  ------------------------------------------------------------------  ------------------------------------------------------------------
8459          Bra          Bra
8460          [\x09 \xa0]+          \H++
8461            \h
8462            Y
8463          Ket          Ket
8464          End          End
8465  ------------------------------------------------------------------  ------------------------------------------------------------------
8466      >\x09\x20\xa0<      XXXX Y
8467   0: \x09 \xa0   0: XXXX Y
8468    
8469  /[\v]/BZ  /\H+ Y/BZ
8470  ------------------------------------------------------------------  ------------------------------------------------------------------
8471          Bra          Bra
8472          [\x0a-\x0d\x85]          \H++
8473             Y
8474          Ket          Ket
8475          End          End
8476  ------------------------------------------------------------------  ------------------------------------------------------------------
8477    
8478  /[\H]/BZ  /\h+A/BZ
8479  ------------------------------------------------------------------  ------------------------------------------------------------------
8480          Bra          Bra
8481          [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff]          \h++
8482            A
8483          Ket          Ket
8484          End          End
8485  ------------------------------------------------------------------  ------------------------------------------------------------------
8486    
8487  /[^\h]/BZ  /\v*B/BZ
8488  ------------------------------------------------------------------  ------------------------------------------------------------------
8489          Bra          Bra
8490          [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff] (neg)          \v*+
8491            B
8492          Ket          Ket
8493          End          End
8494  ------------------------------------------------------------------  ------------------------------------------------------------------
8495    
8496  /[\V]/BZ  /\V+\x0a/BZ
8497  ------------------------------------------------------------------  ------------------------------------------------------------------
8498          Bra          Bra
8499          [\x00-\x09\x0e-\x84\x86-\xff]          \V++
8500            \x0a
8501          Ket          Ket
8502          End          End
8503  ------------------------------------------------------------------  ------------------------------------------------------------------
8504    
8505  /[\x0a\V]/BZ  /A+\h/BZ
8506  ------------------------------------------------------------------  ------------------------------------------------------------------
8507          Bra          Bra
8508          [\x00-\x0a\x0e-\x84\x86-\xff]          A++
8509            \h
8510          Ket          Ket
8511          End          End
8512  ------------------------------------------------------------------  ------------------------------------------------------------------
8513    
8514  /\H++X/BZ  / *\H/BZ
8515  ------------------------------------------------------------------  ------------------------------------------------------------------
8516          Bra          Bra
8517          \H++           *+
8518          X          \H
         Ket  
         End  
 ------------------------------------------------------------------  
     ** Failers  
 No match  
     XXXX  
 No match  
   
 /\H+\hY/BZ  
 ------------------------------------------------------------------  
         Bra  
         \H++  
         \h  
         Y  
         Ket  
         End  
 ------------------------------------------------------------------  
     XXXX Y  
  0: XXXX Y  
   
 /\H+ Y/BZ  
 ------------------------------------------------------------------  
         Bra  
         \H++  
          Y  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /\h+A/BZ  
 ------------------------------------------------------------------  
         Bra  
         \h++  
         A  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /\v*B/BZ  
 ------------------------------------------------------------------  
         Bra  
         \v*+  
         B  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /\V+\x0a/BZ  
 ------------------------------------------------------------------  
         Bra  
         \V++  
         \x0a  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /A+\h/BZ  
 ------------------------------------------------------------------  
         Bra  
         A++  
         \h  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 / *\H/BZ  
 ------------------------------------------------------------------  
         Bra  
          *+  
         \H  
8519          Ket          Ket
8520          End          End
8521  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 8463  No match Line 8601  No match
8601          \d          \d
8602          \v++          \v++
8603          \w          \w
8604          \v+          \v++
8605          \S          \S
8606          \v++          \v++
8607          \V          \V
# Line 8494  No match Line 8632  No match
8632  ------------------------------------------------------------------  ------------------------------------------------------------------
8633    
8634  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
8635  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)  \J1024(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8636   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8637    
8638  /[\E]AAA/  /[\E]AAA/
# Line 8561  No match Line 8699  No match
8699   +6 ^      ^    (*FAIL)   +6 ^      ^    (*FAIL)
8700   +6 ^     ^     (*FAIL)   +6 ^     ^     (*FAIL)
8701   +6 ^    ^      (*FAIL)   +6 ^    ^      (*FAIL)
  +4 ^  ^        c+  
  +2 ^ ^         b?  
  +4 ^ ^         c+  
  +2 ^^          b?  
  +4 ^^          c+  
8702   +0  ^          a+   +0  ^          a+
8703   +2  ^ ^        b?   +2  ^ ^        b?
8704   +4  ^  ^       c+   +4  ^  ^       c+
8705   +6  ^     ^    (*FAIL)   +6  ^     ^    (*FAIL)
8706   +6  ^    ^     (*FAIL)   +6  ^    ^     (*FAIL)
8707   +6  ^   ^      (*FAIL)   +6  ^   ^      (*FAIL)
  +4  ^ ^        c+  
  +2  ^^         b?  
  +4  ^^         c+  
8708   +0   ^         a+   +0   ^         a+
8709   +2   ^^        b?   +2   ^^        b?
8710   +4   ^ ^       c+   +4   ^ ^       c+
8711   +6   ^    ^    (*FAIL)   +6   ^    ^    (*FAIL)
8712   +6   ^   ^     (*FAIL)   +6   ^   ^     (*FAIL)
8713   +6   ^  ^      (*FAIL)   +6   ^  ^      (*FAIL)
  +4   ^^        c+  
8714  No match  No match
8715    
8716  /a+b?(*PRUNE)c+(*FAIL)/C  /a+b?(*PRUNE)c+(*FAIL)/C
# Line 8676  Failed: number is too big at offset 19 Line 8805  Failed: number is too big at offset 19
8805  /\g6666666666/  /\g6666666666/
8806  Failed: number is too big at offset 11  Failed: number is too big at offset 11
8807    
8808  /[\g6666666666]/  /[\g6666666666]/BZ
8809  Failed: number is too big at offset 12  ------------------------------------------------------------------
8810            Bra
8811            [6g]
8812            Ket
8813            End
8814    ------------------------------------------------------------------
8815    
8816  /(?1)\c[/  /(?1)\c[/
8817  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
# Line 8700  No match Line 8834  No match
8834   1: \x0a   1: \x0a
8835    
8836  /a(*CR)b/  /a(*CR)b/
8837  Failed: (*VERB) not recognized at offset 5  Failed: (*VERB) not recognized or malformed at offset 5
8838    
8839  /(*CR)a.b/  /(*CR)a.b/
8840      a\nb      a\nb
# Line 8757  No match Line 8891  No match
8891  No match  No match
8892      a\x85b      a\x85b
8893  No match  No match
8894    
8895    /(*ANY).*/g
8896        abc\r\ndef
8897     0: abc
8898     0:
8899     0: def
8900     0:
8901    
8902    /(*ANYCRLF).*/g
8903        abc\r\ndef
8904     0: abc
8905     0:
8906     0: def
8907     0:
8908    
8909    /(*CRLF).*/g
8910        abc\r\ndef
8911     0: abc
8912     0:
8913     0: def
8914     0:
8915    
8916  /a\Rb/I<bsr_anycrlf>  /a\Rb/I<bsr_anycrlf>
8917  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 8962  Failed: subpattern name expected at offs Line 9117  Failed: subpattern name expected at offs
9117  /\k{}/  /\k{}/
9118  Failed: subpattern name expected at offset 3  Failed: subpattern name expected at offset 3
9119    
9120    /\k/
9121    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9122    
9123    /\kabc/
9124    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9125    
9126  /(?P=)/  /(?P=)/
9127  Failed: subpattern name expected at offset 4  Failed: subpattern name expected at offset 4
9128    
# Line 9134  Starting byte set: x y z Line 9295  Starting byte set: x y z
9295    
9296  /(?(?=.*b)b|^)/CI  /(?(?=.*b)b|^)/CI
9297  Capturing subpattern count = 0  Capturing subpattern count = 0
9298    May match empty string
9299  Options:  Options:
9300  No first char  No first char
9301  No need char  No need char
# Line 9146  No need char Line 9308  No need char
9308   +7 ^ ^     b   +7 ^ ^     b
9309   +7 ^^      b   +7 ^^      b
9310   +7 ^       b   +7 ^       b
9311    +11 ^       ^
9312  +12 ^       )  +12 ^       )
9313  +13 ^  +13 ^
9314   0:   0:
# Line 9183  No options Line 9346  No options
9346  First char at start or follows newline  First char at start or follows newline
9347  No need char  No need char
9348    
 /a?|b?/P  
     abc  
  0: a  
     ** Failers  
  0:  
     ddd\N  
 No match: POSIX code 17: match failed  
   
9349  /xyz/C  /xyz/C
9350    xyz    xyz
9351  --->xyz  --->xyz
# Line 9243  No match Line 9398  No match
9398   +0        ^     x   +0        ^     x
9399   +0         ^    x   +0         ^    x
9400  No match  No match
9401    
9402    /(*NO_START_OPT)xyz/C
9403      abcxyz
9404    --->abcxyz
9405    +15 ^          x
9406    +15  ^         x
9407    +15   ^        x
9408    +15    ^       x
9409    +16    ^^      y
9410    +17    ^ ^     z
9411    +18    ^  ^
9412     0: xyz
9413    
9414    /xyz/CY
9415      abcxyz
9416    --->abcxyz
9417     +0 ^          x
9418     +0  ^         x
9419     +0   ^        x
9420     +0    ^       x
9421     +1    ^^      y
9422     +2    ^ ^     z
9423     +3    ^  ^
9424     0: xyz
9425    
9426  /^"((?(?=[a])[^"])|b)*"$/C  /^"((?(?=[a])[^"])|b)*"$/C
9427      "ab"      "ab"
# Line 9260  No match Line 9439  No match
9439   +3 ^ ^      (?(?=[a])[^"])   +3 ^ ^      (?(?=[a])[^"])
9440   +5 ^ ^      (?=[a])   +5 ^ ^      (?=[a])
9441   +8 ^ ^      [a]   +8 ^ ^      [a]
9442    +17 ^ ^      |
9443  +21 ^ ^      "  +21 ^ ^      "
9444  +18 ^ ^      b  +18 ^ ^      b
9445  +19 ^  ^     )  +19 ^  ^     )
9446   +3 ^  ^     (?(?=[a])[^"])   +3 ^  ^     (?(?=[a])[^"])
9447   +5 ^  ^     (?=[a])   +5 ^  ^     (?=[a])
9448   +8 ^  ^     [a]   +8 ^  ^     [a]
9449    +17 ^  ^     |
9450  +21 ^  ^     "  +21 ^  ^     "
9451  +22 ^   ^    $  +22 ^   ^    $
9452  +23 ^   ^  +23 ^   ^
# Line 9561  Partial match: the cat Line 9742  Partial match: the cat
9742     abc\P\P     abc\P\P
9743   0: abc   0: abc
9744    
 /\w+A/P  
    CDAAAAB  
  0: CDAAAA  
   
 /\w+A/PU  
    CDAAAAB  
  0: CDA  
   
9745  /abc\K123/  /abc\K123/
9746      xyzabc123pqr      xyzabc123pqr
9747   0: 123   0: 123
# Line 9581  Partial match: abc12 Line 9754  Partial match: abc12
9754      xyzabc123pqr      xyzabc123pqr
9755   0: 123   0: 123
9756      xyzabc12\P      xyzabc12\P
9757  Partial match: abc12  Partial match at offset 6: abc12
9758      xyzabc12\P\P      xyzabc12\P\P
9759  Partial match: abc12  Partial match at offset 6: abc12
9760    
9761  /\babc\b/  /\babc\b/
9762      +++abc+++      +++abc+++
9763   0: abc   0: abc
9764      +++ab\P      +++ab\P
9765  Partial match: +ab  Partial match at offset 3: +ab
9766      +++ab\P\P      +++ab\P\P
9767  Partial match: +ab  Partial match at offset 3: +ab
9768    
9769  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9770  ------------------------------------------------------------------  ------------------------------------------------------------------
9771          Bra          Bra
         Once  
9772          Recurse          Recurse
         Ket  
         Once  
9773          Recurse          Recurse
         Ket  
9774          Cond          Cond
9775          Cond def          Cond def
9776          CBra 1          CBra 1
# Line 9622  Partial match: +ab Line 9791  Partial match: +ab
9791  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9792  ------------------------------------------------------------------  ------------------------------------------------------------------
9793          Bra          Bra
         Once  
9794          Recurse          Recurse
         Ket  
         Once  
9795          Recurse          Recurse
         Ket  
9796          Cond          Cond
9797          Cond def          Cond def
9798          CBra 1          CBra 1
# Line 9969  Need char = ':' Line 10134  Need char = ':'
10134  Subject length lower bound = 22  Subject length lower bound = 22
10135  No set of starting bytes  No set of starting bytes
10136    
 /  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*                          # optional leading comment  
 (?:    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )                    # initial word  
 (?:  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )  )* # further okay, if led by a period  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
 # address  
 |                     #  or  
 (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )             # one word, optionally followed by....  
 (?:  
 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...  
 \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)       |  # comments, or...  
   
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 # quoted strings  
 )*  
 <  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*                     # leading <  
 (?:  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
   
 (?:  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  ,  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
 )* # further okay, if led by comma  
 :                                # closing colon  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  )? #       optional route  
 (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )                    # initial word  
 (?:  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )  )* # further okay, if led by a period  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
 #       address spec  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  > #                  trailing >  
 # name and address  
 )  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*                       # optional trailing comment  
 /xSI  
 Capturing subpattern count = 0  
 Contains explicit CR or LF match  
 Options: extended  
 No first char  
 No need char  
 Subject length lower bound = 3  
 Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8  
   9 = ? A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ^ _ ` a b c d e  
   f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f  
   
10137  /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS  /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS
10138  Capturing subpattern count = 11  Capturing subpattern count = 11
10139  Options: caseless dotall  Options: caseless dotall
# Line 10184  No set of starting bytes Line 10145  No set of starting bytes
10145  "(?>.*/)foo"SI  "(?>.*/)foo"SI
10146  Capturing subpattern count = 0  Capturing subpattern count = 0
10147  No options  No options
10148  First char at start or follows newline  No first char
10149  Need char = 'o'  Need char = 'o'
10150  Subject length lower bound = 4  Subject length lower bound = 4
10151  No set of starting bytes  No set of starting bytes
# Line 10246  No set of starting bytes Line 10207  No set of starting bytes
10207  Capturing subpattern count = 1  Capturing subpattern count = 1
10208  Named capturing subpatterns:  Named capturing subpatterns:
10209    a   1    a   1
   a   1  
10210  No options  No options
10211  No first char  No first char
10212  No need char  No need char
# Line 10319  No match Line 10279  No match
10279          Ket          Ket
10280          Ket          Ket
10281          Cond          Cond
10282        4 Cond nref          Cond ref <D>2
10283          X          X
10284          Alt          Alt
10285          Y          Y
# Line 10365  No match Line 10325  No match
10325          CBra 4          CBra 4
10326          d          d
10327          Cond          Cond
10328          Cond nrecurse 1          Cond recurse <A>2
10329          $          $
10330          Alt          Alt
         Once  
10331          Recurse          Recurse
10332          Ket          Ket
10333          Ket          Ket
10334          Ket          Ket
         Ket  
10335          End          End
10336  ------------------------------------------------------------------  ------------------------------------------------------------------
10337  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 10429  Partial match: abca Line 10387  Partial match: abca
10387      xxxxabcde\P\P      xxxxabcde\P\P
10388  Partial match: abcde  Partial match: abcde
10389    
10390  /-- This is not in the Perl 5.10 test because Perl seems currently to be broken  /-- This is not in the Perl-compatible test because Perl seems currently to be
10391      and not behaving as specified in that it *does* bumpalong after hitting      broken and not behaving as specified in that it *does* bumpalong after
10392      (*COMMIT). --/      hitting (*COMMIT). --/
10393    
10394  /(?1)(A(*COMMIT)|B)D/  /(?1)(A(*COMMIT)|B)D/
10395      ABD      ABD
# Line 10511  Starting byte set: i Line 10469  Starting byte set: i
10469  /(?i)a(?-i)b|c/BZ  /(?i)a(?-i)b|c/BZ
10470  ------------------------------------------------------------------  ------------------------------------------------------------------
10471          Bra          Bra
10472       NC a       /i a
      00 Opt  
10473          b          b
10474          Alt          Alt
      00 Opt  
10475          c          c
10476          Ket          Ket
10477          End          End
# Line 10534  No match Line 10490  No match
10490  /(?i)a(?s)b|c/BZ  /(?i)a(?s)b|c/BZ
10491  ------------------------------------------------------------------  ------------------------------------------------------------------
10492          Bra          Bra
10493       NC a       /i ab
      05 Opt  
      NC b  
10494          Alt          Alt
10495       05 Opt       /i c
      NC c  
10496          Ket          Ket
10497          End          End
10498  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 10547  No match Line 10500  No match
10500  /(?i)a(?s-i)b|c/BZ  /(?i)a(?s-i)b|c/BZ
10501  ------------------------------------------------------------------  ------------------------------------------------------------------
10502          Bra          Bra
10503       NC a       /i a
      04 Opt  
10504          b          b
10505          Alt          Alt
      04 Opt  
10506          c          c
10507          Ket          Ket
10508          End          End
# Line 10598  No match Line 10549  No match
10549  ------------------------------------------------------------------  ------------------------------------------------------------------
10550          Bra          Bra
10551          ^          ^
10552          Once          Braposzero
10553          Brazero          SBraPos
         Once  
10554          Recurse          Recurse
10555          KetRmax          KetRpos
         Ket  
10556          Cond          Cond
10557          Cond def          Cond def
10558          CBra 1          CBra 1
# Line 10634  No match Line 10583  No match
10583          End          End
10584  ------------------------------------------------------------------  ------------------------------------------------------------------
10585    
10586  / -- 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  
10587       believe this to be a Perl bug. --/       believe this to be a Perl bug. --/
10588    
 /(?=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  
   
10589  /(?>a\Kb)z|(ab)/  /(?>a\Kb)z|(ab)/
10590      ab      ab
10591   0: ab   0: ab
10592   1: ab   1: ab
10593    
 /----------------------/  
   
10594  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10595  Failed: recursive call could loop indefinitely at offset 31  Failed: recursive call could loop indefinitely at offset 31
10596    
# Line 10681  Failed: an argument is not allowed for ( Line 10610  Failed: an argument is not allowed for (
10610      ACABX      ACABX
10611  No match  No match
10612    
10613  /--- 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
10614       is a bug in Perl. ---/       is a bug in Perl. ---/
10615    
10616  /A(*THEN)B|A(*THEN)C/K  /A(*THEN)B|A(*THEN)C/K
# Line 10692  No match Line 10621  No match
10621      AC      AC
10622  No match  No match
10623    
10624  /--- A whole lot of tests of verbs with arguments are here rather than in test  /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10625       11 because Perl doesn't seem to follow its specification entirely  though PCRE does. ---/
      correctly. ---/  
   
 /--- Perl 5.11 sets $REGERROR on the AC failure case here; PCRE does not. It is  
      not clear how Perl defines "involved in the failure of the match". ---/  
   
 /^(A(*THEN:A)B|C(*THEN:B)D)/K  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match  
     CB  
 No match, mark = B  
   
 /--- Check the use of names for success and failure. PCRE doesn't show these  
 names for success, though Perl does, contrary to its spec. ---/  
   
 /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match, mark = A  
     CB  
 No match, mark = B  
   
 /--- An empty name does not pass back an empty string. It is the same as if no  
 name were given. ---/  
   
 /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
   
 /--- PRUNE goes to next bumpalong; COMMIT does not. ---/  
   
 /A(*PRUNE:A)B/K  
     ACAB  
  0: AB  
   
 /(*MARK:A)(*PRUNE:B)(C|X)/K  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match, mark = B  
   
 /(*MARK:A)(*THEN:B)(C|X)/K  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match, mark = B  
   
 /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/  
   
 /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- Same --/  
   
 /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- This should fail; the SKIP advances by one, but when we get to AC, the  
      PRUNE kills it. ---/  
   
 /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /A(*:A)A+(*SKIP)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- This should fail, as a null name is the same as no name ---/  
   
 /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- This fails in PCRE, and I think that is in accordance with Perl's  
      documentation, though in Perl it succeeds. ---/  
   
 /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK  
     AAAC  
 No match  
   
 /--- Mark names can be duplicated ---/  
10626    
 /A(*:A)B|X(*:A)Y/K  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XY  
 MK: A  
   
10627  /^A(*:A)B|^X(*:A)Y/K  /^A(*:A)B|^X(*:A)Y/K
10628      ** Failers      ** Failers
10629  No match  No match
10630      XAQQ      XAQQ
10631  No match, mark = A  No match, mark = A
10632    
 /--- A check on what happens after hitting a mark and them bumping along to  
 something that does not even start. Perl reports tags after the failures here,  
 though it does not when the individual letters are made into something  
 more complicated. ---/  
   
 /A(*:A)B|XX(*:B)Y/K  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XXY  
 MK: B  
     ** Failers  
 No match  
     XAQQ  
 No match  
     XAQQXZZ  
 No match  
     AXQQQ  
 No match  
     AXXQQQ  
 No match  
   
10633  /--- COMMIT at the start of a pattern should be the same as an anchor. Perl  /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10634  optimizations defeat this. So does the PCRE optimization unless we disable it  optimizations defeat this. So does the PCRE optimization unless we disable it
10635  with \Y. ---/  with \Y. ---/
# Line 10850  No match Line 10642  No match
10642      DEFGABC\Y      DEFGABC\Y
10643  No match  No match
10644    
10645  /--- Repeat some tests with added studying. ---/  /^(ab (c+(*THEN)cd) | xyz)/x
10646        abcccd
 /A(*COMMIT)B/+KS  
     ACABX  
10647  No match  No match
   
 /A(*THEN)B|A(*THEN)C/KS  
     AC  
  0: AC  
10648    
10649  /A(*PRUNE)B|A(*PRUNE)C/KS  /^(ab (c+(*PRUNE)cd) | xyz)/x
10650      AC      abcccd
10651  No match  No match
10652    
10653  /^(A(*THEN:A)B|C(*THEN:B)D)/KS  /^(ab (c+(*FAIL)cd) | xyz)/x
10654      AB      abcccd
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
10655  No match  No match
10656      CB  
10657  No match, mark = B  /--- Perl gets some of these wrong ---/
   
 /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match, mark = A  
     CB  
 No match, mark = B  
   
 /^(A(*PRUNE:)B|C(*PRUNE:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
   
 /A(*PRUNE:A)B/KS  
     ACAB  
  0: AB  
10658    
10659  /(*MARK:A)(*PRUNE:B)(C|X)/KS  /(?>.(*ACCEPT))*?5/
10660      C      abcde
10661   0: C   0: a
  1: C  
 MK: A  
     D  
 No match  
10662    
10663  /(*MARK:A)(*THEN:B)(C|X)/KS  /(.(*ACCEPT))*?5/
10664      C      abcde
10665   0: C   0: a
10666   1: C   1: a
 MK: A  
     D  
 No match  
10667    
10668  /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xKS  /(.(*ACCEPT))5/
10669      AAAC      abcde
10670  No match   0: a
10671     1: a
10672    
10673  /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xKS  /(.(*ACCEPT))*5/
10674      AAAC      abcde
10675  No match   0: a
10676     1: a
 /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xKS  
     AAAC  
 No match  
10677    
10678  /A(*:A)A+(*SKIP)(B|Z) | AC/xKS  /A\NB./BZ
10679      AAAC  ------------------------------------------------------------------
10680            Bra
10681            A
10682            Any
10683            B
10684            Any
10685            Ket
10686            End
10687    ------------------------------------------------------------------
10688        ACBD
10689     0: ACBD
10690        *** Failers
10691  No match  No match
10692        A\nB
 /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xKS  
     AAAC  
10693  No match  No match
10694        ACB\n
 /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xKS  
     AAAC  
10695  No match  No match
10696    
10697  /A(*:A)B|XX(*:B)Y/KS  /A\NB./sBZ
10698      AABC  ------------------------------------------------------------------
10699   0: AB          Bra
10700  MK: A          A
10701      XXYZ          Any
10702   0: XXY          B
10703  MK: B          AllAny
10704      ** Failers          Ket
10705  No match          End
10706      XAQQ  ------------------------------------------------------------------
10707  No match      ACBD
10708      XAQQXZZ   0: ACBD
10709  No match      ACB\n
10710      AXQQQ   0: ACB\x0a
10711        *** Failers
10712  No match  No match
10713      AXXQQQ      A\nB
10714  No match  No match
10715    
10716  /(*COMMIT)ABC/  /A\NB/<crlf>
10717      ABCDEFG      A\nB
10718   0: ABC   0: A\x0aB
10719        A\rB
10720     0: A\x0dB
10721      ** Failers      ** Failers
10722  No match  No match
10723      DEFGABC\Y      A\r\nB
10724  No match  No match
10725    
10726  /^(ab (c+(*THEN)cd) | xyz)/x  /\R+b/BZ
10727      abcccd  ------------------------------------------------------------------
10728            Bra
10729            \R++
10730            b
10731            Ket
10732            End
10733    ------------------------------------------------------------------
10734    
10735    /\R+\n/BZ
10736    ------------------------------------------------------------------
10737            Bra
10738            \R+
10739            \x0a
10740            Ket
10741            End
10742    ------------------------------------------------------------------
10743    
10744    /\R+\d/BZ
10745    ------------------------------------------------------------------
10746            Bra
10747            \R++
10748            \d
10749            Ket
10750            End
10751    ------------------------------------------------------------------
10752    
10753    /\d*\R/BZ
10754    ------------------------------------------------------------------
10755            Bra
10756            \d*+
10757            \R
10758            Ket
10759            End
10760    ------------------------------------------------------------------
10761    
10762    /\s*\R/BZ
10763    ------------------------------------------------------------------
10764            Bra
10765            \s*
10766            \R
10767            Ket
10768            End
10769    ------------------------------------------------------------------
10770        \x20\x0a
10771     0:  \x0a
10772        \x20\x0d
10773     0:  \x0d
10774        \x20\x0d\x0a
10775     0:  \x0d\x0a
10776    
10777    /\S*\R/BZ
10778    ------------------------------------------------------------------
10779            Bra
10780            \S*+
10781            \R
10782            Ket
10783            End
10784    ------------------------------------------------------------------
10785        a\x0a
10786     0: a\x0a
10787    
10788    /X\h*\R/BZ
10789    ------------------------------------------------------------------
10790            Bra
10791            X
10792            \h*+
10793            \R
10794            Ket
10795            End
10796    ------------------------------------------------------------------
10797        X\x20\x0a
10798     0: X \x0a
10799    
10800    /X\H*\R/BZ
10801    ------------------------------------------------------------------
10802            Bra
10803            X
10804            \H*
10805            \R
10806            Ket
10807            End
10808    ------------------------------------------------------------------
10809        X\x0d\x0a
10810     0: X\x0d\x0a
10811    
10812    /X\H+\R/BZ
10813    ------------------------------------------------------------------
10814            Bra
10815            X
10816            \H+
10817            \R
10818            Ket
10819            End
10820    ------------------------------------------------------------------
10821        X\x0d\x0a
10822     0: X\x0d\x0a
10823    
10824    /X\H++\R/BZ
10825    ------------------------------------------------------------------
10826            Bra
10827            X
10828            \H++
10829            \R
10830            Ket
10831            End
10832    ------------------------------------------------------------------
10833        X\x0d\x0a
10834  No match  No match
10835    
10836  /^(ab (c+(*PRUNE)cd) | xyz)/x  /(?<=abc)def/
10837      abcccd      abc\P\P
10838    Partial match at offset 3: abc
10839    
10840    /abc$/
10841        abc
10842     0: abc
10843        abc\P
10844     0: abc
10845        abc\P\P
10846    Partial match: abc
10847    
10848    /abc$/m
10849        abc
10850     0: abc
10851        abc\n
10852     0: abc
10853        abc\P\P
10854    Partial match: abc
10855        abc\n\P\P
10856     0: abc
10857        abc\P
10858     0: abc
10859        abc\n\P
10860     0: abc
10861    
10862    /abc\z/
10863        abc
10864     0: abc
10865        abc\P
10866     0: abc
10867        abc\P\P
10868    Partial match: abc
10869    
10870    /abc\Z/
10871        abc
10872     0: abc
10873        abc\P
10874     0: abc
10875        abc\P\P
10876    Partial match: abc
10877    
10878    /abc\b/
10879        abc
10880     0: abc
10881        abc\P
10882     0: abc
10883        abc\P\P
10884    Partial match: abc
10885    
10886    /abc\B/
10887        abc
10888  No match  No match
10889        abc\P
10890    Partial match: abc
10891        abc\P\P
10892    Partial match: abc
10893    
10894  /^(ab (c+(*FAIL)cd) | xyz)/x  /.+/
10895      abcccd      abc\>0
10896     0: abc
10897        abc\>1
10898     0: bc
10899        abc\>2
10900     0: c
10901        abc\>3
10902  No match  No match
10903        abc\>4
10904  /--- Perl 5.11 gets some of these wrong ---/  Error -24 (bad offset value)
10905        abc\>-4
10906    Error -24 (bad offset value)
10907    
10908  /(?>.(*ACCEPT))*?5/  /^\cģ/
10909      abcde  Failed: \c must be followed by an ASCII character at offset 3
  0: a  
10910    
10911  /(.(*ACCEPT))*?5/  /(?P<abn>(?P=abn)xxx)/BZ
10912      abcde  ------------------------------------------------------------------
10913   0: a          Bra
10914   1: a          Once
10915            CBra 1
10916            \1
10917            xxx
10918            Ket
10919            Ket
10920            Ket
10921            End
10922    ------------------------------------------------------------------
10923    
10924  /(.(*ACCEPT))5/  /(a\1z)/BZ
10925      abcde  ------------------------------------------------------------------
10926   0: a          Bra
10927   1: a          Once
10928            CBra 1
10929            a
10930            \1
10931            z
10932            Ket
10933            Ket
10934            Ket
10935            End
10936    ------------------------------------------------------------------
10937    
10938  /(.(*ACCEPT))*5/  /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
10939      abcde  Failed: syntax error in subpattern name (missing terminator) at offset 29
10940   0: a  
10941   1: a  /(?P<abn>(?P=axn)xxx)/BZ
10942    Failed: reference to non-existent subpattern at offset 15
10943    
10944    /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
10945    ------------------------------------------------------------------
10946            Bra
10947            CBra 1
10948            \2
10949            xxx
10950            Ket
10951            CBra 2
10952            yy
10953            Ket
10954            Ket
10955            End
10956    ------------------------------------------------------------------
10957    
10958    /-- These tests are here because Perl gets the first one wrong. --/
10959    
10960    /(\R*)(.)/s
10961        \r\n
10962     0: \x0d
10963     1:
10964     2: \x0d
10965        \r\r\n\n\r
10966     0: \x0d\x0d\x0a\x0a\x0d
10967     1: \x0d\x0d\x0a\x0a
10968     2: \x0d
10969        \r\r\n\n\r\n
10970     0: \x0d\x0d\x0a\x0a\x0d
10971     1: \x0d\x0d\x0a\x0a
10972     2: \x0d
10973    
10974    /(\R)*(.)/s
10975        \r\n
10976     0: \x0d
10977     1: <unset>
10978     2: \x0d
10979        \r\r\n\n\r
10980     0: \x0d\x0d\x0a\x0a\x0d
10981     1: \x0a
10982     2: \x0d
10983        \r\r\n\n\r\n
10984     0: \x0d\x0d\x0a\x0a\x0d
10985     1: \x0a
10986     2: \x0d
10987    
10988    /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
10989        \r\n
10990     0: \x0d
10991     1:
10992     2: \x0d
10993        \r\r\n\n\r
10994     0: \x0d\x0d\x0a\x0a\x0d
10995     1: \x0d\x0d\x0a\x0a
10996     2: \x0d
10997        \r\r\n\n\r\n
10998     0: \x0d\x0d\x0a\x0a\x0d
10999     1: \x0d\x0d\x0a\x0a
11000     2: \x0d
11001    
11002    /-- --/
11003    
11004    /^abc$/BZ
11005    ------------------------------------------------------------------
11006            Bra
11007            ^
11008            abc
11009            $
11010            Ket
11011            End
11012    ------------------------------------------------------------------
11013    
11014    /^abc$/BZm
11015    ------------------------------------------------------------------
11016            Bra
11017         /m ^
11018            abc
11019         /m $
11020            Ket
11021            End
11022    ------------------------------------------------------------------
11023    
11024    /^(a)*+(\w)/S
11025        aaaaX
11026     0: aaaaX
11027     1: a
11028     2: X
11029        ** Failers
11030    No match
11031        aaaa
11032    No match
11033    
11034    /^(?:a)*+(\w)/S
11035        aaaaX
11036     0: aaaaX
11037     1: X
11038        ** Failers
11039    No match
11040        aaaa
11041    No match
11042    
11043    /(a)++1234/SDZ
11044    ------------------------------------------------------------------
11045            Bra
11046            CBraPos 1
11047            a
11048            KetRpos
11049            1234
11050            Ket
11051            End
11052    ------------------------------------------------------------------
11053    Capturing subpattern count = 1
11054    No options
11055    First char = 'a'
11056    Need char = '4'
11057    Subject length lower bound = 5
11058    No set of starting bytes
11059    
11060    /([abc])++1234/SI
11061    Capturing subpattern count = 1
11062    No options
11063    No first char
11064    Need char = '4'
11065    Subject length lower bound = 5
11066    Starting byte set: a b c
11067    
11068    /(?<=(abc)+)X/
11069    Failed: lookbehind assertion is not fixed length at offset 10
11070    
11071    /(^ab)/I
11072    Capturing subpattern count = 1
11073    Options: anchored
11074    No first char
11075    No need char
11076    
11077    /(^ab)++/I
11078    Capturing subpattern count = 1
11079    Options: anchored
11080    No first char
11081    No need char
11082    
11083    /(^ab|^)+/I
11084    Capturing subpattern count = 1
11085    May match empty string
11086    Options: anchored
11087    No first char
11088    No need char
11089    
11090    /(^ab|^)++/I
11091    Capturing subpattern count = 1
11092    May match empty string
11093    Options: anchored
11094    No first char
11095    No need char
11096    
11097    /(?:^ab)/I
11098    Capturing subpattern count = 0
11099    Options: anchored
11100    No first char
11101    No need char
11102    
11103    /(?:^ab)++/I
11104    Capturing subpattern count = 0
11105    Options: anchored
11106    No first char
11107    No need char
11108    
11109    /(?:^ab|^)+/I
11110    Capturing subpattern count = 0
11111    May match empty string
11112    Options: anchored
11113    No first char
11114    No need char
11115    
11116    /(?:^ab|^)++/I
11117    Capturing subpattern count = 0
11118    May match empty string
11119    Options: anchored
11120    No first char
11121    No need char
11122    
11123    /(.*ab)/I
11124    Capturing subpattern count = 1
11125    No options
11126    First char at start or follows newline
11127    Need char = 'b'
11128    
11129    /(.*ab)++/I
11130    Capturing subpattern count = 1
11131    No options
11132    First char at start or follows newline
11133    Need char = 'b'
11134    
11135    /(.*ab|.*)+/I
11136    Capturing subpattern count = 1
11137    May match empty string
11138    No options
11139    First char at start or follows newline
11140    No need char
11141    
11142    /(.*ab|.*)++/I
11143    Capturing subpattern count = 1
11144    May match empty string
11145    No options
11146    First char at start or follows newline
11147    No need char
11148    
11149    /(?:.*ab)/I
11150    Capturing subpattern count = 0
11151    No options
11152    First char at start or follows newline
11153    Need char = 'b'
11154    
11155    /(?:.*ab)++/I
11156    Capturing subpattern count = 0
11157    No options
11158    First char at start or follows newline
11159    Need char = 'b'
11160    
11161    /(?:.*ab|.*)+/I
11162    Capturing subpattern count = 0
11163    May match empty string
11164    No options
11165    First char at start or follows newline
11166    No need char
11167    
11168    /(?:.*ab|.*)++/I
11169    Capturing subpattern count = 0
11170    May match empty string
11171    No options
11172    First char at start or follows newline
11173    No need char
11174    
11175    /(?=a)[bcd]/I
11176    Capturing subpattern count = 0
11177    No options
11178    First char = 'a'
11179    No need char
11180    
11181    /((?=a))[bcd]/I
11182    Capturing subpattern count = 1
11183    No options
11184    First char = 'a'
11185    No need char
11186    
11187    /((?=a))+[bcd]/I
11188    Capturing subpattern count = 1
11189    No options
11190    First char = 'a'
11191    No need char
11192    
11193    /((?=a))++[bcd]/I
11194    Capturing subpattern count = 1
11195    No options
11196    First char = 'a'
11197    No need char
11198    
11199    /(?=a+)[bcd]/iI
11200    Capturing subpattern count = 0
11201    Options: caseless
11202    First char = 'a' (caseless)
11203    No need char
11204    
11205    /(?=a+?)[bcd]/iI
11206    Capturing subpattern count = 0
11207    Options: caseless
11208    First char = 'a' (caseless)
11209    No need char
11210    
11211    /(?=a++)[bcd]/iI
11212    Capturing subpattern count = 0
11213    Options: caseless
11214    First char = 'a' (caseless)
11215    No need char
11216    
11217    /(?=a{3})[bcd]/iI
11218    Capturing subpattern count = 0
11219    Options: caseless
11220    First char = 'a' (caseless)
11221    Need char = 'a' (caseless)
11222    
11223    /(abc)\1+/S
11224    
11225    /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11226    
11227    /(?1)(?:(b(*ACCEPT))){0}/
11228        b
11229     0: b
11230    
11231    /(?1)(?:(b(*ACCEPT))){0}c/
11232        bc
11233     0: bc
11234        ** Failers
11235    No match
11236        b
11237    No match
11238    
11239    /(?1)(?:((*ACCEPT))){0}c/
11240        c
11241     0: c
11242        c\N
11243     0: c
11244    
11245    /^.*?(?(?=a)a|b(*THEN)c)/
11246        ba
11247    No match
11248    
11249    /^.*?(?(?=a)a|bc)/
11250        ba
11251     0: ba
11252    
11253    /^.*?(?(?=a)a(*THEN)b|c)/
11254        ac
11255    No match
11256    
11257    /^.*?(?(?=a)a(*THEN)b)c/
11258        ac
11259    No match
11260    
11261    /^.*?(a(*THEN)b)c/
11262        aabc
11263    No match
11264    
11265    /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11266        aabc
11267     0: aabc
11268    
11269    /^.*?(a(*THEN)b|z)c/
11270        aabc
11271     0: aabc
11272     1: ab
11273    
11274    /^.*?(z|a(*THEN)b)c/
11275        aabc
11276     0: aabc
11277     1: ab
11278    
11279    /-- --/
11280    
11281    /-- These studied versions are here because they are not Perl-compatible; the
11282        studying means the mark is not seen. --/
11283    
11284    /(*MARK:A)(*SKIP:B)(C|X)/KS
11285        C
11286     0: C
11287     1: C
11288    MK: A
11289        D
11290    No match, mark = A
11291    
11292    /(*:A)A+(*SKIP:A)(B|Z)/KS
11293        AAAC
11294    No match, mark = A
11295    
11296    /-- --/
11297    
11298    "(?=a*(*ACCEPT)b)c"
11299        c
11300     0: c
11301        c\N
11302     0: c
11303    
11304    /(?1)c(?(DEFINE)((*ACCEPT)b))/
11305        c
11306     0: c
11307        c\N
11308     0: c
11309    
11310    /(?>(*ACCEPT)b)c/
11311        c
11312     0:
11313        c\N
11314    No match
11315    
11316    /(?:(?>(a)))+a%/++
11317        %aa%
11318     0: aa%
11319     0+
11320     1: a
11321     1+ a%
11322    
11323    /(a)b|ac/++SS
11324        ac\O3
11325     0: ac
11326     0+
11327    
11328    /(a)(b)x|abc/++
11329         abc\O6
11330     0: abc
11331     0+
11332    
11333    /(a)bc|(a)(b)\2/
11334        \O3abc
11335    Matched, but too many substrings
11336     0: abc
11337        \O4abc
11338    Matched, but too many substrings
11339     0: abc
11340    
11341    /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11342    Capturing subpattern count = 2
11343    No options
11344    No first char
11345    No need char
11346    Subject length lower bound = 1
11347    No set of starting bytes
11348    
11349    /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11350    Capturing subpattern count = 2
11351    No options
11352    No first char
11353    No need char
11354    Subject length lower bound = 3
11355    Starting byte set: a b
11356    
11357    /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11358    Capturing subpattern count = 2
11359    No options
11360    No first char
11361    No need char
11362    Subject length lower bound = 4
11363    Starting byte set: a b
11364    
11365    /(abc)(?1)/SI
11366    Capturing subpattern count = 1
11367    No options
11368    First char = 'a'
11369    Need char = 'c'
11370    Subject length lower bound = 6
11371    No set of starting bytes
11372    
11373    /^(?>a)++/
11374        aa\M
11375    Minimum match() limit = 5
11376    Minimum match() recursion limit = 2
11377     0: aa
11378        aaaaaaaaa\M
11379    Minimum match() limit = 12
11380    Minimum match() recursion limit = 2
11381     0: aaaaaaaaa
11382    
11383    /(a)(?1)++/
11384        aa\M
11385    Minimum match() limit = 7
11386    Minimum match() recursion limit = 4
11387     0: aa
11388     1: a
11389        aaaaaaaaa\M
11390    Minimum match() limit = 21
11391    Minimum match() recursion limit = 4
11392     0: aaaaaaaaa
11393     1: a
11394    
11395    /(?:(foo)|(bar)|(baz))X/SS=
11396        bazfooX
11397     0: fooX
11398     1: foo
11399     2: <unset>
11400     3: <unset>
11401        foobazbarX
11402     0: barX
11403     1: <unset>
11404     2: bar
11405     3: <unset>
11406        barfooX
11407     0: fooX
11408     1: foo
11409     2: <unset>
11410     3: <unset>
11411        bazX
11412     0: bazX
11413     1: <unset>
11414     2: <unset>
11415     3: baz
11416        foobarbazX
11417     0: bazX
11418     1: <unset>
11419     2: <unset>
11420     3: baz
11421        bazfooX\O0
11422    Matched, but too many substrings
11423        bazfooX\O2
11424    Matched, but too many substrings
11425     0: fooX
11426        bazfooX\O4
11427    Matched, but too many substrings
11428     0: fooX
11429     1: <unset>
11430        bazfooX\O6
11431    Matched, but too many substrings
11432     0: fooX
11433     1: foo
11434     2: <unset>
11435        bazfooX\O8
11436    Matched, but too many substrings
11437     0: fooX
11438     1: foo
11439     2: <unset>
11440     3: <unset>
11441        bazfooX\O10
11442     0: fooX
11443     1: foo
11444     2: <unset>
11445     3: <unset>
11446    
11447    /(?=abc){3}abc/BZ
11448    ------------------------------------------------------------------
11449            Bra
11450            Assert
11451            abc
11452            Ket
11453            abc
11454            Ket
11455            End
11456    ------------------------------------------------------------------
11457    
11458    /(?=abc)+abc/BZ
11459    ------------------------------------------------------------------
11460            Bra
11461            Assert
11462            abc
11463            Ket
11464            abc
11465            Ket
11466            End
11467    ------------------------------------------------------------------
11468    
11469    /(?=abc)++abc/BZ
11470    ------------------------------------------------------------------
11471            Bra
11472            Assert
11473            abc
11474            Ket
11475            abc
11476            Ket
11477            End
11478    ------------------------------------------------------------------
11479    
11480    /(?=abc){0}xyz/BZ
11481    ------------------------------------------------------------------
11482            Bra
11483            Skip zero
11484            Assert
11485            abc
11486            Ket
11487            xyz
11488            Ket
11489            End
11490    ------------------------------------------------------------------
11491    
11492    /(?=(a))?./BZ
11493    ------------------------------------------------------------------
11494            Bra
11495            Brazero
11496            Assert
11497            CBra 1
11498            a
11499            Ket
11500            Ket
11501            Any
11502            Ket
11503            End
11504    ------------------------------------------------------------------
11505    
11506    /(?=(a))??./BZ
11507    ------------------------------------------------------------------
11508            Bra
11509            Braminzero
11510            Assert
11511            CBra 1
11512            a
11513            Ket
11514            Ket
11515            Any
11516            Ket
11517            End
11518    ------------------------------------------------------------------
11519    
11520    /^(?=(a)){0}b(?1)/BZ
11521    ------------------------------------------------------------------
11522            Bra
11523            ^
11524            Skip zero
11525            Assert
11526            CBra 1
11527            a
11528            Ket
11529            Ket
11530            b
11531            Recurse
11532            Ket
11533            End
11534    ------------------------------------------------------------------
11535    
11536    /(?(DEFINE)(a))?b(?1)/BZ
11537    ------------------------------------------------------------------
11538            Bra
11539            Cond
11540            Cond def
11541            CBra 1
11542            a
11543            Ket
11544            Ket
11545            b
11546            Recurse
11547            Ket
11548            End
11549    ------------------------------------------------------------------
11550    
11551    /^(?=(?1))?[az]([abc])d/BZ
11552    ------------------------------------------------------------------
11553            Bra
11554            ^
11555            Brazero
11556            Assert
11557            Recurse
11558            Ket
11559            [az]
11560            CBra 1
11561            [a-c]
11562            Ket
11563            d
11564            Ket
11565            End
11566    ------------------------------------------------------------------
11567    
11568    /^(?!a){0}\w+/BZ
11569    ------------------------------------------------------------------
11570            Bra
11571            ^
11572            Skip zero
11573            Assert not
11574            a
11575            Ket
11576            \w++
11577            Ket
11578            End
11579    ------------------------------------------------------------------
11580    
11581    /(?<=(abc))?xyz/BZ
11582    ------------------------------------------------------------------
11583            Bra
11584            Brazero
11585            AssertB
11586            Reverse
11587            CBra 1
11588            abc
11589            Ket
11590            Ket
11591            xyz
11592            Ket
11593            End
11594    ------------------------------------------------------------------
11595    
11596    /[:a[:abc]b:]/BZ
11597    ------------------------------------------------------------------
11598            Bra
11599            [:[a-c]
11600            b:]
11601            Ket
11602            End
11603    ------------------------------------------------------------------
11604    
11605    /((?2))((?1))/SS
11606        abc
11607    Error -26 (nested recursion at the same subject position)
11608    
11609    /((?(R2)a+|(?1)b))/SS
11610        aaaabcde
11611    Error -26 (nested recursion at the same subject position)
11612    
11613    /(?(R)a*(?1)|((?R))b)/SS
11614        aaaabcde
11615    Error -26 (nested recursion at the same subject position)
11616    
11617    /(a+|(?R)b)/
11618    Failed: recursive call could loop indefinitely at offset 7
11619    
11620    /^(a(*:A)(d|e(*:B))z|aeq)/C
11621        adz
11622    --->adz
11623     +0 ^       ^
11624     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11625     +2 ^       a
11626     +3 ^^      (*:A)
11627     +8 ^^      (d|e(*:B))
11628    Latest Mark: A
11629     +9 ^^      d
11630    +10 ^ ^     |
11631    +18 ^ ^     z
11632    +19 ^  ^    |
11633    +24 ^  ^
11634     0: adz
11635     1: adz
11636     2: d
11637        aez
11638    --->aez
11639     +0 ^       ^
11640     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11641     +2 ^       a
11642     +3 ^^      (*:A)
11643     +8 ^^      (d|e(*:B))
11644    Latest Mark: A
11645     +9 ^^      d
11646    +11 ^^      e
11647    +12 ^ ^     (*:B)
11648    +17 ^ ^     )
11649    Latest Mark: B
11650    +18 ^ ^     z
11651    +19 ^  ^    |
11652    +24 ^  ^
11653     0: aez
11654     1: aez
11655     2: e
11656        aeqwerty
11657    --->aeqwerty
11658     +0 ^            ^
11659     +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11660     +2 ^            a
11661     +3 ^^           (*:A)
11662     +8 ^^           (d|e(*:B))
11663    Latest Mark: A
11664     +9 ^^           d
11665    +11 ^^           e
11666    +12 ^ ^          (*:B)
11667    +17 ^ ^          )
11668    Latest Mark: B
11669    +18 ^ ^          z
11670    +20 ^            a
11671    +21 ^^           e
11672    +22 ^ ^          q
11673    +23 ^  ^         )
11674    +24 ^  ^
11675     0: aeq
11676     1: aeq
11677    
11678    /.(*F)/
11679        \P\Pabc
11680    No match
11681    
11682    /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11683    Capturing subpattern count = 0
11684    Max lookbehind = 1
11685    No options
11686    First char = 't'
11687    Need char = 't'
11688    Subject length lower bound = 18
11689    No set of starting bytes
11690    
11691    /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11692    Capturing subpattern count = 0
11693    Max lookbehind = 1
11694    No options
11695    No first char
11696    No need char
11697    Subject length lower bound = 8
11698    Starting byte set: < o t u
11699    
11700    /a(*SKIP)c|b(*ACCEPT)|/+S!I
11701    Capturing subpattern count = 0
11702    May match empty string
11703    No options
11704    No first char
11705    No need char
11706    Subject length lower bound = -1
11707    No set of starting bytes
11708        a
11709     0:
11710     0+
11711    
11712    /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11713    Capturing subpattern count = 0
11714    No options
11715    No first char
11716    No need char
11717    Subject length lower bound = -1
11718    Starting byte set: a b x
11719        ax
11720     0: x
11721    
11722    'a*(*ACCEPT)b'+
11723        \N\N
11724    No match
11725        abc\N\N
11726     0: a
11727     0+ bc
11728        bbb\N\N
11729     0:
11730     0+ bb
11731    
11732    /(*ACCEPT)a/+I
11733    Capturing subpattern count = 0
11734    No options
11735    No first char
11736    No need char
11737        bax
11738     0:
11739     0+ bax
11740    
11741