Diff for /embedaddon/pcre/testdata/testoutput2 between versions 1.1 and 1.1.1.5

version 1.1, 2012/02/21 23:05:52 version 1.1.1.5, 2014/06/15 19:46:05
Line 5 Line 5
     either because PCRE can't be compatible, or there is a possible Perl       either because PCRE can't be compatible, or there is a possible Perl 
     bug.      bug.
           
    NOTE: This is a non-UTF-8 set of tests. When UTF-8 is needed, use test    NOTE: This is a non-UTF set of tests. When UTF support is needed, use
    5, and if Unicode Property Support is needed, use test 13. --/      test 5, and if Unicode Property Support is needed, use test 7. --/
     
 < forbid 8W 
       
 /-- 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. --/     
   
 /(a)b|/I  /(a)b|/I
 Capturing subpattern count = 1  Capturing subpattern count = 1
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 232  No options Line 231  No options
 No first char  No first char
 No need char  No need char
 Subject length lower bound = 1  Subject length lower bound = 1
Starting byte set: \x09 \x0a \x0c \x0d \x20 a b Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 a b 
   
 /(ab\2)/  /(ab\2)/
 Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
Line 380  No need char Line 379  No need char
  2: <unset>   2: <unset>
  3: def   3: def
   
 /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  
   
 /)/  /)/
 Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
   
Line 507  Need char = '=' Line 451  Need char = '='
   
 /(?<!bar|cattle)foo/I  /(?<!bar|cattle)foo/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 6
 No options  No options
 First char = 'f'  First char = 'f'
 Need char = 'o'  Need char = 'o'
Line 556  No need char Line 501  No need char
   
 /(?s).*/I  /(?s).*/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   May match empty string
 Options: anchored dotall  Options: anchored dotall
 No first char  No first char
 No need char  No need char
Line 603  Failed: conditional group contains more than two branc Line 549  Failed: conditional group contains more than two branc
 Failed: conditional group contains more than two branches at offset 12  Failed: conditional group contains more than two branches at offset 12
   
 /(?(1a)/  /(?(1a)/
Failed: missing ) at offset 6Failed: malformed number or name after (?( at offset 4
   
 /(?(1a))/  /(?(1a))/
Failed: reference to non-existent subpattern at offset 6Failed: malformed number or name after (?( at offset 4
   
 /(?(?i))/  /(?(?i))/
 Failed: assertion expected after (?( at offset 3  Failed: assertion expected after (?( at offset 3
Line 689  No match Line 635  No match
   
 /\Aabc/Im  /\Aabc/Im
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 1
 Options: anchored multiline  Options: anchored multiline
 No first char  No first char
 No need char  No need char
Line 714  No need char Line 661  No need char
   
 /(?<=foo)[ab]/IS  /(?<=foo)[ab]/IS
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 3
 No options  No options
 No first char  No first char
 No need char  No need char
Line 722  Starting byte set: a b  Line 670  Starting byte set: a b 
   
 /(?<!foo)(alpha|omega)/IS  /(?<!foo)(alpha|omega)/IS
 Capturing subpattern count = 1  Capturing subpattern count = 1
   Max lookbehind = 3
 No options  No options
 No first char  No first char
 Need char = 'a'  Need char = 'a'
Line 738  Starting byte set: a b  Line 687  Starting byte set: a b 
   
 /(?<=foo\n)^bar/Im  /(?<=foo\n)^bar/Im
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 4
 Contains explicit CR or LF match  Contains explicit CR or LF match
 Options: multiline  Options: multiline
 No first char  No first char
Line 755  No match Line 705  No match
   
 /^(?<=foo\n)bar/Im  /^(?<=foo\n)bar/Im
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 4
 Contains explicit CR or LF match  Contains explicit CR or LF match
 Options: multiline  Options: multiline
 First char at start or follows newline  First char at start or follows newline
Line 797  Failed: lookbehind assertion is not fixed length at of Line 748  Failed: lookbehind assertion is not fixed length at of
   
 /(?<=bullock|donkey)-cart/I  /(?<=bullock|donkey)-cart/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 7
 No options  No options
 First char = '-'  First char = '-'
 Need char = 't'  Need char = 't'
Line 813  No match Line 765  No match
   
 /(?<=ab(?i)x|y|z)/I  /(?<=ab(?i)x|y|z)/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 3
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
   
 /(?>.*)(?<=(abcd)|(xyz))/I  /(?>.*)(?<=(abcd)|(xyz))/I
 Capturing subpattern count = 2  Capturing subpattern count = 2
   Max lookbehind = 4
   May match empty string
 No options  No options
First char at start or follows newlineNo first char
 No need char  No need char
     alphabetabcd      alphabetabcd
  0: alphabetabcd   0: alphabetabcd
Line 832  No need char Line 788  No need char
   
 /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 4
 No options  No options
 First char = 'Z'  First char = 'Z'
 Need char = 'Z'  Need char = 'Z'
Line 860  No match Line 817  No match
   
 /(?<!(foo)a)bar/I  /(?<!(foo)a)bar/I
 Capturing subpattern count = 1  Capturing subpattern count = 1
   Max lookbehind = 4
 No options  No options
 First char = 'b'  First char = 'b'
 Need char = 'r'  Need char = 'r'
Line 872  No match Line 830  No match
     fooabar      fooabar
 No match  No match
   
 /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  
   
 /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
 Capturing subpattern count = 0  Capturing subpattern count = 0
 No options  No options
Line 1034  Failed: numbers out of order in {} quantifier at offse Line 976  Failed: numbers out of order in {} quantifier at offse
 /abc/\  /abc/\
 Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
   
 /abc/\P  
 Failed: POSIX code 9: bad escape sequence at offset 4       
   
 /abc/\i  /abc/\i
 Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
   
Line 1152  No first char Line 1091  No first char
 No need char  No need char
     abc\00def\L\C0      abc\00def\L\C0
  0: abc\x00def   0: abc\x00def
 0C abc (7) 0C abc\x00def (7)
  0L abc   0L abc
   
 /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 1264  No need char Line 1203  No need char
   
 /\Biss\B/I+  /\Biss\B/I+
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 1
 No options  No options
 First char = 'i'  First char = 'i'
 Need char = 's'  Need char = 's'
Line 1271  Need char = 's' Line 1211  Need char = 's'
  0: iss   0: iss
  0+ issippi   0+ issippi
   
 /\Biss\B/I+P  
     Mississippi  
  0: iss  
  0+ issippi  
   
 /iss/IG+  /iss/IG+
 Capturing subpattern count = 0  Capturing subpattern count = 0
 No options  No options
Line 1289  Need char = 's' Line 1224  Need char = 's'
   
 /\Biss\B/IG+  /\Biss\B/IG+
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 1
 No options  No options
 First char = 'i'  First char = 'i'
 Need char = 's'  Need char = 's'
Line 1298  Need char = 's' Line 1234  Need char = 's'
   
 /\Biss\B/Ig+  /\Biss\B/Ig+
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 1
 No options  No options
 First char = 'i'  First char = 'i'
 Need char = 's'  Need char = 's'
Line 1313  No match Line 1250  No match
   
 /(?<=[Ms])iss/Ig+  /(?<=[Ms])iss/Ig+
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 1
 No options  No options
 First char = 'i'  First char = 'i'
 Need char = 's'  Need char = 's'
Line 1324  Need char = 's' Line 1262  Need char = 's'
   
 /(?<=[Ms])iss/IG+  /(?<=[Ms])iss/IG+
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 1
 No options  No options
 First char = 'i'  First char = 'i'
 Need char = 's'  Need char = 's'
Line 1405  Capturing subpattern count = 0 Line 1344  Capturing subpattern count = 0
 Contains explicit CR or LF match  Contains explicit CR or LF match
 Options: multiline  Options: multiline
 First char at start or follows newline  First char at start or follows newline
Need char = 10Need char = \x0a
     ab\nab\ncd      ab\nab\ncd
  0: ab\x0a   0: ab\x0a
  0+ ab\x0acd   0+ ab\x0acd
Line 1444  Need char = 'c' Line 1383  Need char = 'c'
   
 /a*/I  /a*/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 1462  Need char = 'a' Line 1402  Need char = 'a'
   
 /a{0,3}/I  /a{0,3}/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 1504  Need char = 'r' Line 1445  Need char = 'r'
   
 /...(?<=abc)/I  /...(?<=abc)/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 3
 No options  No options
 No first char  No first char
 No need char  No need char
Line 1660  Need char = 'e' Line 1602  Need char = 'e'
   
 /a?b?/I  /a?b?/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 1678  No match Line 1621  No match
   
 /|-/I  /|-/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 1692  No need char Line 1636  No need char
     \Nabc      \Nabc
 No match  No match
   
 /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  
   
 /^.?abcd/IS  /^.?abcd/IS
 Capturing subpattern count = 0  Capturing subpattern count = 0
 Options: anchored  Options: anchored
Line 2718  Need char = '-' Line 2635  Need char = '-'
         End          End
 ------------------------------------------------------------------  ------------------------------------------------------------------
 Capturing subpattern count = 0  Capturing subpattern count = 0
   May match empty string
 Options: extended  Options: extended
 No first char  No first char
 No need char  No need char
Line 2737  No need char Line 2655  No need char
 /[\s]/DZ  /[\s]/DZ
 ------------------------------------------------------------------  ------------------------------------------------------------------
         Bra          Bra
        [\x09\x0a\x0c\x0d ]        [\x09-\x0d ]
         Ket          Ket
         End          End
 ------------------------------------------------------------------  ------------------------------------------------------------------
Line 2749  No need char Line 2667  No need char
 /[\S]/DZ  /[\S]/DZ
 ------------------------------------------------------------------  ------------------------------------------------------------------
         Bra          Bra
        [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)        [\x00-\x08\x0e-\x1f!-\xff] (neg)
         Ket          Ket
         End          End
 ------------------------------------------------------------------  ------------------------------------------------------------------
Line 2860  Need char = '0' Line 2778  Need char = '0'
         End          End
 ------------------------------------------------------------------  ------------------------------------------------------------------
 Capturing subpattern count = 0  Capturing subpattern count = 0
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 2959  No match Line 2878  No match
         End          End
 ------------------------------------------------------------------  ------------------------------------------------------------------
 Capturing subpattern count = 0  Capturing subpattern count = 0
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 2975  No options Line 2895  No options
 First char = 'x'  First char = 'x'
 No need char  No need char
   
/x{1,3}+/DZ/x{1,3}+/BZO
 ------------------------------------------------------------------  ------------------------------------------------------------------
         Bra          Bra
         Once  
         x          x
        x{0,2}        x{0,2}+
         Ket          Ket
           End
   ------------------------------------------------------------------
   
   /x{1,3}+/BZOi
   ------------------------------------------------------------------
           Bra
        /i x
        /i x{0,2}+
         Ket          Ket
         End          End
 ------------------------------------------------------------------  ------------------------------------------------------------------
 Capturing subpattern count = 0  
 No options  
 First char = 'x'  
 No need char  
   
   /[^x]{1,3}+/BZO
   ------------------------------------------------------------------
           Bra
           [^x]
           [^x]{0,2}+
           Ket
           End
   ------------------------------------------------------------------
   
   /[^x]{1,3}+/BZOi
   ------------------------------------------------------------------
           Bra
        /i [^x]
        /i [^x]{0,2}+
           Ket
           End
   ------------------------------------------------------------------
   
 /(x)*+/DZ  /(x)*+/DZ
 ------------------------------------------------------------------  ------------------------------------------------------------------
         Bra          Bra
Line 3001  No need char Line 2942  No need char
         End          End
 ------------------------------------------------------------------  ------------------------------------------------------------------
 Capturing subpattern count = 1  Capturing subpattern count = 1
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
   
 /^(\w++|\s++)*$/I  /^(\w++|\s++)*$/I
 Capturing subpattern count = 1  Capturing subpattern count = 1
   May match empty string
 Options: anchored  Options: anchored
 No first char  No first char
 No need char  No need char
Line 3168  Need char = 'b' Line 3111  Need char = 'b'
         [bc]+          [bc]+
         Ket          Ket
         CBra 5          CBra 5
        \w*        \w*+
         Ket          Ket
         Ket          Ket
         Ket          Ket
Line 3247  Failed: missing terminating ] for character class at o Line 3190  Failed: missing terminating ] for character class at o
 /[\s]/IDZ  /[\s]/IDZ
 ------------------------------------------------------------------  ------------------------------------------------------------------
         Bra          Bra
        [\x09\x0a\x0c\x0d ]        [\x09-\x0d ]
         Ket          Ket
         End          End
 ------------------------------------------------------------------  ------------------------------------------------------------------
Line 3311  No match Line 3254  No match
         End          End
 ------------------------------------------------------------------  ------------------------------------------------------------------
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 1
 No options  No options
 First char = '8'  First char = '8'
 Need char = 'X'  Need char = 'X'
Line 3324  Need char = 'X' Line 3268  Need char = 'X'
         End          End
 ------------------------------------------------------------------  ------------------------------------------------------------------
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 1
 No options  No options
 First char = '$'  First char = '$'
 Need char = 'X'  Need char = 'X'
Line 3380  Need char = 'b' Line 3325  Need char = 'b'
   
 /(?=a).*/I  /(?=a).*/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   May match empty string
 No options  No options
 First char = 'a'  First char = 'a'
 No need char  No need char
Line 3398  Need char = 'z' (caseless) Line 3344  Need char = 'z' (caseless)
   
 /(?=a)(?=b)/I  /(?=a)(?=b)/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   May match empty string
 No options  No options
 First char = 'a'  First char = 'a'
 No need char  No need char
Line 3464  Need char = 'a' Line 3411  Need char = 'a'
   
 /(a)*/I  /(a)*/I
 Capturing subpattern count = 1  Capturing subpattern count = 1
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 3692  No match Line 3640  No match
   
 /(?C0)(abc(?C1))*/I  /(?C0)(abc(?C1))*/I
 Capturing subpattern count = 1  Capturing subpattern count = 1
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 3725  No need char Line 3674  No need char
   
 /(\d{3}(?C))*/I  /(\d{3}(?C))*/I
 Capturing subpattern count = 1  Capturing subpattern count = 1
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 3839  Callout 2: last capture = -1 Line 3789  Callout 2: last capture = -1
   
 /(?<=(abc)(?C))xyz/I  /(?<=(abc)(?C))xyz/I
 Capturing subpattern count = 1  Capturing subpattern count = 1
   Max lookbehind = 3
 No options  No options
 First char = 'x'  First char = 'x'
 Need char = 'z'  Need char = 'z'
Line 3860  Need char = 'b' Line 3811  Need char = 'b'
 --->abbbbbccc  --->abbbbbccc
   1 ^        ^        1 ^        ^    
 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  
 No match  No match
   
 /a(b+?)(c*?)(?C1)/I  /a(b+?)(c*?)(?C1)/I
Line 3970  Failed: recursive call could loop indefinitely at offs Line 3907  Failed: recursive call could loop indefinitely at offs
   
 /^([^()]|\((?1)*\))*$/I  /^([^()]|\((?1)*\))*$/I
 Capturing subpattern count = 1  Capturing subpattern count = 1
   May match empty string
 Options: anchored  Options: anchored
 No first char  No first char
 No need char  No need char
Line 4249  Named capturing subpatterns: Line 4187  Named capturing subpatterns:
   one     1    one     1
   three   3    three   3
   two     2    two     2
   May match empty string
 Options: anchored caseless  Options: anchored caseless
 No first char  No first char
 No need char  No need char
Line 4348  Need char = 'z' Line 4287  Need char = 'z'
   
 /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
 Capturing subpattern count = 31  Capturing subpattern count = 31
   May match empty string
 Options: anchored dotall  Options: anchored dotall
 No first char  No first char
 No need char  No need char
Line 4355  No need char Line 4295  No need char
 /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
 Capturing subpattern count = 31  Capturing subpattern count = 31
 Max back reference = 31  Max back reference = 31
   May match empty string
 Options: dotall  Options: dotall
 No first char  No first char
 No need char  No need char
Line 4362  No need char Line 4303  No need char
 /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
 Capturing subpattern count = 32  Capturing subpattern count = 32
 Max back reference = 32  Max back reference = 32
   May match empty string
 Options: dotall  Options: dotall
 No first char  No first char
 No need char  No need char
Line 4438  Minimum match() recursion limit = 6 Line 4380  Minimum match() recursion limit = 6
  1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
 Minimum match() limit = 32768  Minimum match() limit = 32768
Minimum match() recursion limit = 42Minimum match() recursion limit = 29
 No match  No match
   
 /(aaa(?C1)bbb|ab)/I  /(aaa(?C1)bbb|ab)/I
Line 4513  Capturing subpattern count = 2 Line 4455  Capturing subpattern count = 2
 Named capturing subpatterns:  Named capturing subpatterns:
   Tes    1    Tes    1
   Test   2    Test   2
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 4531  Capturing subpattern count = 2 Line 4474  Capturing subpattern count = 2
 Named capturing subpatterns:  Named capturing subpatterns:
   Tes    2    Tes    2
   Test   1    Test   1
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 4608  Need char = ']' Line 4552  Need char = ']'
         End          End
 ------------------------------------------------------------------  ------------------------------------------------------------------
 Capturing subpattern count = 2  Capturing subpattern count = 2
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 4628  No need char Line 4573  No need char
         End          End
 ------------------------------------------------------------------  ------------------------------------------------------------------
 Capturing subpattern count = 2  Capturing subpattern count = 2
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 4659  No need char Line 4605  No need char
         End          End
 ------------------------------------------------------------------  ------------------------------------------------------------------
 Capturing subpattern count = 2  Capturing subpattern count = 2
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 4666  No need char Line 4613  No need char
 /[ab]{1}+/DZ  /[ab]{1}+/DZ
 ------------------------------------------------------------------  ------------------------------------------------------------------
         Bra          Bra
        Once        [ab]{1,1}+
        [ab]{1,1} 
         Ket          Ket
         Ket  
         End          End
 ------------------------------------------------------------------  ------------------------------------------------------------------
 Capturing subpattern count = 0  Capturing subpattern count = 0
Line 5380  No match Line 5325  No match
         Callout 255 0 21          Callout 255 0 21
         CBra 1          CBra 1
         Callout 255 1 9          Callout 255 1 9
        [ab]{1,4}        [ab]{1,4}+
         Callout 255 10 1          Callout 255 10 1
         c          c
         Callout 255 11 0          Callout 255 11 0
Line 5393  No match Line 5338  No match
         Ket          Ket
         CBra 1          CBra 1
         Callout 255 1 9          Callout 255 1 9
        [ab]{1,4}        [ab]{1,4}+
         Callout 255 10 1          Callout 255 10 1
         c          c
         Callout 255 11 0          Callout 255 11 0
Line 5406  No match Line 5351  No match
         Ket          Ket
         CBra 1          CBra 1
         Callout 255 1 9          Callout 255 1 9
        [ab]{1,4}        [ab]{1,4}+
         Callout 255 10 1          Callout 255 10 1
         c          c
         Callout 255 11 0          Callout 255 11 0
Line 5419  No match Line 5364  No match
         Ket          Ket
         CBra 1          CBra 1
         Callout 255 1 9          Callout 255 1 9
        [ab]{1,4}        [ab]{1,4}+
         Callout 255 10 1          Callout 255 10 1
         c          c
         Callout 255 11 0          Callout 255 11 0
Line 5433  No match Line 5378  No match
         Braminzero          Braminzero
         CBra 1          CBra 1
         Callout 255 1 9          Callout 255 1 9
        [ab]{1,4}        [ab]{1,4}+
         Callout 255 10 1          Callout 255 10 1
         c          c
         Callout 255 11 0          Callout 255 11 0
Line 5486  Need char = '3' Line 5431  Need char = '3'
   
 /\b.*/I  /\b.*/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 1
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 5494  No need char Line 5441  No need char
   
 /\b.*/Is  /\b.*/Is
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 1
   May match empty string
 Options: dotall  Options: dotall
 No first char  No first char
 No need char  No need char
Line 5502  No need char Line 5451  No need char
   
 /(?!.bcd).*/I  /(?!.bcd).*/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 5854  No match Line 5804  No match
     line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
 No match  No match
   
 /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  
   
 /(?i)(?-i)AbCd/I  /(?i)(?-i)AbCd/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
 No options  No options
Line 6108  Matched, but too many substrings Line 6040  Matched, but too many substrings
   
 /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 6120  No need char Line 6053  No need char
   
 /[^()]*(?:\((?>(?R))\)[^()]*)*/I  /[^()]*(?:\((?>(?R))\)[^()]*)*/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 6130  No need char Line 6064  No need char
   
 /[^()]*(?:\((?R)\))*[^()]*/I  /[^()]*(?:\((?R)\))*[^()]*/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 6140  No need char Line 6075  No need char
   
 /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 6152  No need char Line 6088  No need char
   
 /(?:\((?R)\))|[^()]*/I  /(?:\((?R)\))|[^()]*/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 6164  No need char Line 6101  No need char
     ((this))      ((this))
  0: ((this))   0: ((this))
   
 /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  
   
 /\x{0000ff}/I  /\x{0000ff}/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
 No options  No options
First char = 255First char = \xff
 No need char  No need char
   
 /^((?P<A>a1)|(?P<A>a2)b)/I  /^((?P<A>a1)|(?P<A>a2)b)/I
Line 6212  no parentheses with name "Z" Line 6138  no parentheses with name "Z"
  2: a1   2: a1
 copy substring Z failed -7  copy substring Z failed -7
   C a1 (2) A    C a1 (2) A
       
   /(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/IJ
   Capturing subpattern count = 3
   Named capturing subpatterns:
     a   1
     a   3
     b   2
   May match empty string
   Options: dupnames
   No first char
   No need char
   
 /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
 Capturing subpattern count = 2  Capturing subpattern count = 2
Line 6288  no parentheses with name "Z" Line 6225  no parentheses with name "Z"
  0: a1   0: a1
  1: a1   1: a1
  2: a1   2: a1
copy substring Z failed -7get substring Z failed -7
   G a1 (2) A    G a1 (2) A
   
 /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
Line 6320  No need char Line 6257  No need char
   G a (1) A    G a (1) A
     cd\GA      cd\GA
  0: cd   0: cd
copy substring A failed -7get substring A failed -7
   
 /^(?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
 Capturing subpattern count = 4  Capturing subpattern count = 4
Line 6422  Need char = 'X' Line 6359  Need char = 'X'
  1: X   1: X
   
 /(?:(?(2y)a|b)(X))+/I  /(?:(?(2y)a|b)(X))+/I
Failed: reference to non-existent subpattern at offset 9Failed: malformed number or name after (?( at offset 7
   
 /(?:(?(ZA)a|b)(?P<ZZ>X))+/I  /(?:(?(ZA)a|b)(?P<ZZ>X))+/I
 Failed: reference to non-existent subpattern at offset 9  Failed: reference to non-existent subpattern at offset 9
Line 6488  No need char Line 6425  No need char
  9:    9: 
 10: Y  10: Y
   
 /\777/I  
 Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3  
   
 /\s*,\s*/IS  /\s*,\s*/IS
 Capturing subpattern count = 0  Capturing subpattern count = 0
 No options  No options
 No first char  No first char
 Need char = ','  Need char = ','
 Subject length lower bound = 1  Subject length lower bound = 1
Starting byte set: \x09 \x0a \x0c \x0d \x20 , Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 , 
     \x0b,\x0b      \x0b,\x0b
 0: , 0: \x0b,\x0b
     \x0c,\x0d      \x0c,\x0d
  0: \x0c,\x0d   0: \x0c,\x0d
   
Line 6608  No match Line 6542  No match
 No match  No match
   
 /^abc/Im<bad>  /^abc/Im<bad>
Unknown newline type at: <bad>Unknown modifier at: <bad>
   
   
 /abc/I  /abc/I
Line 6617  No options Line 6551  No options
 First char = 'a'  First char = 'a'
 Need char = 'c'  Need char = 'c'
     xyz\rabc\<bad>      xyz\rabc\<bad>
Unknown newline type at: <bad>Unknown escape sequence at: <bad>
     abc      abc
  0: abc   0: abc
   
 /.*/I<lf>  /.*/I<lf>
 Capturing subpattern count = 0  Capturing subpattern count = 0
   May match empty string
 Options:  Options:
 Forced newline sequence: LF  Forced newline sequence: LF
 First char at start or follows newline  First char at start or follows newline
Line 6664  Need char = 'f' Line 6599  Need char = 'f'
   
 +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
 Capturing subpattern count = 1  Capturing subpattern count = 1
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 7551  Matched, but too many substrings Line 7487  Matched, but too many substrings
 /[^a]+a/BZi  /[^a]+a/BZi
 ------------------------------------------------------------------  ------------------------------------------------------------------
         Bra          Bra
     /i [^A]++     /i [^a]++
      /i a       /i a
         Ket          Ket
         End          End
Line 7560  Matched, but too many substrings Line 7496  Matched, but too many substrings
 /[^a]+A/BZi  /[^a]+A/BZi
 ------------------------------------------------------------------  ------------------------------------------------------------------
         Bra          Bra
     /i [^A]++     /i [^a]++
      /i A       /i A
         Ket          Ket
         End          End
Line 7587  Matched, but too many substrings Line 7523  Matched, but too many substrings
 /a*[^a]/BZ  /a*[^a]/BZ
 ------------------------------------------------------------------  ------------------------------------------------------------------
         Bra          Bra
        a*        a*+
         [^a]          [^a]
         Ket          Ket
         End          End
Line 7729  No match Line 7665  No match
 ------------------------------------------------------------------  ------------------------------------------------------------------
         Bra          Bra
         ^          ^
        [a-z]+        [a-z]++
         Ket          Ket
         End          End
 ------------------------------------------------------------------  ------------------------------------------------------------------
Line 7770  No match Line 7706  No match
         ^          ^
         CBra 1          CBra 1
         Cond          Cond
      2 Cond nref      2 Cond ref
         y          y
         Ket          Ket
         [()]          [()]
Line 7830  Named capturing subpatterns: Line 7766  Named capturing subpatterns:
   one     1    one     1
   three   3    three   3
   two     2    two     2
   May match empty string
 Options: anchored caseless  Options: anchored caseless
 No first char  No first char
 No need char  No need char
Line 7929  Failed: reference to non-existent subpattern at offset Line 7866  Failed: reference to non-existent subpattern at offset
  1: abcabc1Xabc2XabcX   1: abcabc1Xabc2XabcX
  2: abcabc1Xabc2XabcX   2: abcabc1Xabc2XabcX
   
/(?<A> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x/(?<A> (?'B' abc (?(R) (?(R&C)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
 Failed: reference to non-existent subpattern at offset 29  Failed: reference to non-existent subpattern at offset 29
   
 /(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x  
     abcabc1Xabc2XabcXabcabc  
  0: abcabc1Xabc2XabcX  
  1: abcabc1Xabc2XabcX  
  2: abcabc1Xabc2XabcX  
   
 /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
 Failed: DEFINE group contains more than one branch at offset 22  Failed: DEFINE group contains more than one branch at offset 22
   
Line 8161  Failed: a numbered reference must not be zero at offse Line 8092  Failed: a numbered reference must not be zero at offse
 /^(a)\g{3/  /^(a)\g{3/
 Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
   
/^(a)\g{4a}//^(a)\g{aa}/
 Failed: reference to non-existent subpattern at offset 9  Failed: reference to non-existent subpattern at offset 9
   
 /^a.b/<lf>  /^a.b/<lf>
Line 8506  Failed: syntax error in subpattern name (missing termi Line 8437  Failed: syntax error in subpattern name (missing termi
  3: <unset>   3: <unset>
  4: x   4: x
   
 /[\h]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x09 \xa0]  
         Ket  
         End  
 ------------------------------------------------------------------  
     >\x09<  
  0: \x09  
   
 /[\h]+/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x09 \xa0]+  
         Ket  
         End  
 ------------------------------------------------------------------  
     >\x09\x20\xa0<  
  0: \x09 \xa0  
   
 /[\v]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x0a-\x0d\x85]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[\H]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[^\h]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff] (neg)  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[\V]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x09\x0e-\x84\x86-\xff]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[\x0a\V]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x0a\x0e-\x84\x86-\xff]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /\H++X/BZ  /\H++X/BZ
 ------------------------------------------------------------------  ------------------------------------------------------------------
         Bra          Bra
Line 8726  No match Line 8597  No match
         \d          \d
         \v++          \v++
         \w          \w
        \v+        \v++
         \S          \S
         \v++          \v++
         \V          \V
Line 8824  No match Line 8695  No match
  +6 ^      ^    (*FAIL)   +6 ^      ^    (*FAIL)
  +6 ^     ^     (*FAIL)   +6 ^     ^     (*FAIL)
  +6 ^    ^      (*FAIL)   +6 ^    ^      (*FAIL)
  +4 ^  ^        c+  
  +2 ^ ^         b?  
  +4 ^ ^         c+  
  +2 ^^          b?  
  +4 ^^          c+  
  +0  ^          a+   +0  ^          a+
  +2  ^ ^        b?   +2  ^ ^        b?
  +4  ^  ^       c+   +4  ^  ^       c+
  +6  ^     ^    (*FAIL)   +6  ^     ^    (*FAIL)
  +6  ^    ^     (*FAIL)   +6  ^    ^     (*FAIL)
  +6  ^   ^      (*FAIL)   +6  ^   ^      (*FAIL)
  +4  ^ ^        c+  
  +2  ^^         b?  
  +4  ^^         c+  
  +0   ^         a+   +0   ^         a+
  +2   ^^        b?   +2   ^^        b?
  +4   ^ ^       c+   +4   ^ ^       c+
  +6   ^    ^    (*FAIL)   +6   ^    ^    (*FAIL)
  +6   ^   ^     (*FAIL)   +6   ^   ^     (*FAIL)
  +6   ^  ^      (*FAIL)   +6   ^  ^      (*FAIL)
  +4   ^^        c+  
 No match  No match
   
 /a+b?(*PRUNE)c+(*FAIL)/C  /a+b?(*PRUNE)c+(*FAIL)/C
Line 8968  No match Line 8830  No match
  1: \x0a   1: \x0a
   
 /a(*CR)b/  /a(*CR)b/
Failed: (*VERB) not recognized at offset 5Failed: (*VERB) not recognized or malformed at offset 5
   
 /(*CR)a.b/  /(*CR)a.b/
     a\nb      a\nb
Line 9413  No match Line 9275  No match
     ab        ab  
 No match  No match
   
/a(?!)+b//a(?!)b/BZ
Failed: nothing to repeat at offset 5------------------------------------------------------------------
         Bra
         a
         *FAIL
         b
         Ket
         End
 ------------------------------------------------------------------
   
   /(?!)?a/BZ
   ------------------------------------------------------------------
           Bra
           Brazero
           Assert not
           Ket
           a
           Ket
           End
   ------------------------------------------------------------------
       ab
    0: a
   
 /a(*FAIL)+b/  /a(*FAIL)+b/
 Failed: nothing to repeat at offset 8  Failed: nothing to repeat at offset 8
   
Line 9429  Starting byte set: x y z  Line 9311  Starting byte set: x y z 
   
 /(?(?=.*b)b|^)/CI  /(?(?=.*b)b|^)/CI
 Capturing subpattern count = 0  Capturing subpattern count = 0
   May match empty string
 Options:  Options:
 No first char  No first char
 No need char  No need char
Line 9441  No need char Line 9324  No need char
  +7 ^ ^     b   +7 ^ ^     b
  +7 ^^      b   +7 ^^      b
  +7 ^       b   +7 ^       b
   +11 ^       ^
 +12 ^       )  +12 ^       )
 +13 ^         +13 ^       
  0:    0: 
Line 9478  No options Line 9362  No options
 First char at start or follows newline  First char at start or follows newline
 No need char  No need char
   
 /a?|b?/P  
     abc  
  0: a  
     ** Failers  
  0:   
     ddd\N     
 No match: POSIX code 17: match failed  
   
 /xyz/C  /xyz/C
   xyz     xyz 
 --->xyz  --->xyz
Line 9540  No match Line 9416  No match
 No match  No match
       
 /(*NO_START_OPT)xyz/C  /(*NO_START_OPT)xyz/C
  abcxyz   abcxyz
 --->abcxyz  --->abcxyz
 +15 ^          x  +15 ^          x
 +15  ^         x  +15  ^         x
Line 9550  No match Line 9426  No match
 +17    ^ ^     z  +17    ^ ^     z
 +18    ^  ^      +18    ^  ^    
  0: xyz   0: xyz
     
   /(*NO_AUTO_POSSESS)a+b/BZ  
   ------------------------------------------------------------------
           Bra
           a+
           b
           Ket
           End
   ------------------------------------------------------------------
   
 /xyz/CY  /xyz/CY
   abcxyz     abcxyz 
Line 9579  No match Line 9464  No match
  +3 ^ ^      (?(?=[a])[^"])   +3 ^ ^      (?(?=[a])[^"])
  +5 ^ ^      (?=[a])   +5 ^ ^      (?=[a])
  +8 ^ ^      [a]   +8 ^ ^      [a]
   +17 ^ ^      |
 +21 ^ ^      "  +21 ^ ^      "
 +18 ^ ^      b  +18 ^ ^      b
 +19 ^  ^     )  +19 ^  ^     )
  +3 ^  ^     (?(?=[a])[^"])   +3 ^  ^     (?(?=[a])[^"])
  +5 ^  ^     (?=[a])   +5 ^  ^     (?=[a])
  +8 ^  ^     [a]   +8 ^  ^     [a]
   +17 ^  ^     |
 +21 ^  ^     "  +21 ^  ^     "
 +22 ^   ^    $  +22 ^   ^    $
 +23 ^   ^      +23 ^   ^    
Line 9880  Partial match: the cat Line 9767  Partial match: the cat
    abc\P\P     abc\P\P
  0: abc   0: abc
         
 /\w+A/P  
    CDAAAAB   
  0: CDAAAA  
   
 /\w+A/PU  
    CDAAAAB   
  0: CDA  
   
 /abc\K123/  /abc\K123/
     xyzabc123pqr      xyzabc123pqr
  0: 123   0: 123
Line 9900  Partial match: abc12 Line 9779  Partial match: abc12
     xyzabc123pqr       xyzabc123pqr 
  0: 123   0: 123
     xyzabc12\P      xyzabc12\P
Partial match: abc12Partial match at offset 6: abc12
     xyzabc12\P\P      xyzabc12\P\P
Partial match: abc12Partial match at offset 6: abc12
   
 /\babc\b/  /\babc\b/
     +++abc+++      +++abc+++
  0: abc   0: abc
     +++ab\P      +++ab\P
Partial match: +abPartial match at offset 3: +ab
     +++ab\P\P        +++ab\P\P  
Partial match: +abPartial match at offset 3: +ab
   
 /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
 ------------------------------------------------------------------  ------------------------------------------------------------------
Line 10280  Need char = ':' Line 10159  Need char = ':'
 Subject length lower bound = 22  Subject length lower bound = 22
 No set of starting bytes  No set of starting bytes
   
 /  (?: [\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   
   
 /<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
 Capturing subpattern count = 11  Capturing subpattern count = 11
 Options: caseless dotall  Options: caseless dotall
Line 10495  No set of starting bytes Line 10170  No set of starting bytes
 "(?>.*/)foo"SI  "(?>.*/)foo"SI
 Capturing subpattern count = 0  Capturing subpattern count = 0
 No options  No options
First char at start or follows newlineNo first char
 Need char = 'o'  Need char = 'o'
 Subject length lower bound = 4  Subject length lower bound = 4
 No set of starting bytes  No set of starting bytes
Line 10557  No set of starting bytes Line 10232  No set of starting bytes
 Capturing subpattern count = 1  Capturing subpattern count = 1
 Named capturing subpatterns:  Named capturing subpatterns:
   a   1    a   1
   a   1  
 No options  No options
 No first char  No first char
 No need char  No need char
Line 10630  No match Line 10304  No match
         Ket          Ket
         Ket          Ket
         Cond          Cond
      4 Cond nref        Cond ref <D>2
         X          X
         Alt          Alt
         Y          Y
Line 10676  No match Line 10350  No match
         CBra 4          CBra 4
         d          d
         Cond          Cond
        Cond nrecurse 1        Cond recurse <A>2
         $          $
         Alt          Alt
         Recurse          Recurse
Line 10738  Partial match: abca Line 10412  Partial match: abca
     xxxxabcde\P\P      xxxxabcde\P\P
 Partial match: abcde  Partial match: abcde
   
/-- This is not in the Perl >= 5.10 test because Perl seems currently to be/-- This is not in the Perl-compatible test because Perl seems currently to be
     broken and not behaving as specified in that it *does* bumpalong after      broken and not behaving as specified in that it *does* bumpalong after
     hitting (*COMMIT). --/      hitting (*COMMIT). --/
   
Line 10934  No match Line 10608  No match
         End          End
 ------------------------------------------------------------------  ------------------------------------------------------------------
   
/ -- 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 
      believe this to be a Perl bug. --/         believe this to be a Perl bug. --/  
               
 /(?=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  
   
 /(?>a\Kb)z|(ab)/  /(?>a\Kb)z|(ab)/
     ab       ab 
  0: ab   0: ab
  1: ab   1: ab
   
 /----------------------/  
   
 /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
 Failed: recursive call could loop indefinitely at offset 31  Failed: recursive call could loop indefinitely at offset 31
   
Line 10981  Failed: an argument is not allowed for (*ACCEPT), (*FA Line 10635  Failed: an argument is not allowed for (*ACCEPT), (*FA
     ACABX      ACABX
 No match  No match
   
/--- 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
      is a bug in Perl. ---/       is a bug in Perl. ---/
   
 /A(*THEN)B|A(*THEN)C/K  /A(*THEN)B|A(*THEN)C/K
Line 10992  No match Line 10646  No match
     AC      AC
 No match  No match
           
 /--- This should fail; the SKIP advances by one, but when we get to AC, the  
      PRUNE kills it. Perl behaves differently. ---/   
       
 /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK  
     AAAC  
 No match, mark = A  
   
 /--- Mark names can be duplicated. Perl doesn't give a mark for this one,  /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
 though PCRE does. ---/  though PCRE does. ---/
   
Line 11032  No match Line 10679  No match
     abcccd        abcccd  
 No match  No match
           
/--- Perl 5.11 gets some of these wrong ---/ /--- Perl gets some of these wrong ---/ 
   
 /(?>.(*ACCEPT))*?5/  /(?>.(*ACCEPT))*?5/
     abcde      abcde
Line 11140  No match Line 10787  No match
 /\s*\R/BZ  /\s*\R/BZ
 ------------------------------------------------------------------  ------------------------------------------------------------------
         Bra          Bra
        \s*+        \s*
         \R          \R
         Ket          Ket
         End          End
 ------------------------------------------------------------------  ------------------------------------------------------------------
       \x20\x0a
    0:  \x0a
       \x20\x0d
    0:  \x0d
       \x20\x0d\x0a
    0:  \x0d\x0a
   
/-- Perl treats this one differently, not failing the second string. I believe/\S*\R/BZ
    that is a bug in Perl. --/------------------------------------------------------------------
         Bra
         \S*+
         \R
         Ket
         End
 ------------------------------------------------------------------
     a\x0a
  0: a\x0a
   
/^((abc|abcx)(*THEN)y|abcd)//X\h*\R/BZ
    abcd------------------------------------------------------------------
 0: abcd        Bra
 1: abcd        X
    *** Failers         \h*+
         \R
         Ket
         End
 ------------------------------------------------------------------
     X\x20\x0a
  0: X \x0a
 
 /X\H*\R/BZ
 ------------------------------------------------------------------
         Bra
         X
         \H*
         \R
         Ket
         End
 ------------------------------------------------------------------
     X\x0d\x0a
  0: X\x0d\x0a
 
 /X\H+\R/BZ
 ------------------------------------------------------------------
         Bra
         X
         \H+
         \R
         Ket
         End
 ------------------------------------------------------------------
     X\x0d\x0a
  0: X\x0d\x0a
 
 /X\H++\R/BZ
 ------------------------------------------------------------------
         Bra
         X
         \H++
         \R
         Ket
         End
 ------------------------------------------------------------------
     X\x0d\x0a
 No match  No match
     abcxy   
 No match  
   
 /(?<=abc)def/  /(?<=abc)def/
     abc\P\P      abc\P\P
Partial match: abcPartial match at offset 3: abc
   
 /abc$/  /abc$/
     abc      abc
Line 11407  No need char Line 11107  No need char
   
 /(^ab|^)+/I  /(^ab|^)+/I
 Capturing subpattern count = 1  Capturing subpattern count = 1
   May match empty string
 Options: anchored  Options: anchored
 No first char  No first char
 No need char  No need char
   
 /(^ab|^)++/I  /(^ab|^)++/I
 Capturing subpattern count = 1  Capturing subpattern count = 1
   May match empty string
 Options: anchored  Options: anchored
 No first char  No first char
 No need char  No need char
Line 11431  No need char Line 11133  No need char
   
 /(?:^ab|^)+/I  /(?:^ab|^)+/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   May match empty string
 Options: anchored  Options: anchored
 No first char  No first char
 No need char  No need char
   
 /(?:^ab|^)++/I  /(?:^ab|^)++/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   May match empty string
 Options: anchored  Options: anchored
 No first char  No first char
 No need char  No need char
Line 11455  Need char = 'b' Line 11159  Need char = 'b'
   
 /(.*ab|.*)+/I  /(.*ab|.*)+/I
 Capturing subpattern count = 1  Capturing subpattern count = 1
   May match empty string
 No options  No options
 First char at start or follows newline  First char at start or follows newline
 No need char  No need char
   
 /(.*ab|.*)++/I  /(.*ab|.*)++/I
 Capturing subpattern count = 1  Capturing subpattern count = 1
   May match empty string
 No options  No options
 First char at start or follows newline  First char at start or follows newline
 No need char  No need char
Line 11479  Need char = 'b' Line 11185  Need char = 'b'
   
 /(?:.*ab|.*)+/I  /(?:.*ab|.*)+/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   May match empty string
 No options  No options
 First char at start or follows newline  First char at start or follows newline
 No need char  No need char
   
 /(?:.*ab|.*)++/I  /(?:.*ab|.*)++/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   May match empty string
 No options  No options
 First char at start or follows newline  First char at start or follows newline
 No need char  No need char
Line 11639  No match Line 11347  No match
   
 /(a)b|ac/++SS  /(a)b|ac/++SS
     ac\O3      ac\O3
 Matched, but too many substrings  
  0: ac   0: ac
  0+    0+ 
           
Line 11891  Matched, but too many substrings Line 11598  Matched, but too many substrings
         Assert not          Assert not
         a          a
         Ket          Ket
        \w+        \w++
         Ket          Ket
         End          End
 ------------------------------------------------------------------  ------------------------------------------------------------------
Line 11999  No match Line 11706  No match
   
 /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS  /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 1
 No options  No options
 First char = 't'  First char = 't'
 Need char = 't'  Need char = 't'
Line 12007  No set of starting bytes Line 11715  No set of starting bytes
   
 /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS  /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 1
 No options  No options
 No first char  No first char
 No need char  No need char
 Subject length lower bound = 8  Subject length lower bound = 8
 Starting byte set: < o t u   Starting byte set: < o t u 
   
/a(*SKIP)c|b(*ACCEPT)|/+SI/a(*SKIP)c|b(*ACCEPT)|/+S!I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Study returned NULLSubject length lower bound = -1
 No set of starting bytes
     a      a
  0:    0: 
  0+    0+ 
Line 12079  Minimum match() limit = 86 Line 11790  Minimum match() limit = 86
 Minimum match() recursion limit = 45  Minimum match() recursion limit = 45
  0: abbbbbbbbbbbbbbbbbbbbba   0: abbbbbbbbbbbbbbbbbbbbba
   
 /-- These tests are in agreement with development Perl 5.015, which has fixed  
     some things, but they don't all work with 5.012, so they aren't in the  
     Perl-compatible tests. Those after the first come from Perl's own test  
     files. --/  
       
 /^((yes|no)(*THEN)(*F))?/  
   yes  
 No match  
   
 /(A (.*)   C? (*THEN)  | A D) (*FAIL)/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   C? (*THEN)  | A D) z/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   C? (*THEN)  | A D) \s* (*FAIL)/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   C? (*THEN)  | A D) \s* z/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   (?:C|) (*THEN)  | A D) (*FAIL)/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   (?:C|) (*THEN)  | A D) z/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   C{0,6} (*THEN)  | A D) (*FAIL)/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   C{0,6} (*THEN)  | A D) z/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   (CE){0,6} (*THEN)  | A D) (*FAIL)/x  
 AbcdCEBefgBhiBqz  
 No match  
   
 /(A (.*)   (CE){0,6} (*THEN)  | A D) z/x  
 AbcdCEBefgBhiBqz  
 No match  
   
 /(A (.*)   (CE*){0,6} (*THEN)  | A D) (*FAIL)/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   (CE*){0,6} (*THEN)  | A D) z/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /-----------------------------------------------/    
   
 /^(?>a+)(?>(z+))\w/BZ  /^(?>a+)(?>(z+))\w/BZ
 ------------------------------------------------------------------  ------------------------------------------------------------------
         Bra          Bra
         ^          ^
         Once_NC          Once_NC
        a+        a++
         Ket          Ket
         Once          Once
         CBra 1          CBra 1
        z+        z++
         Ket          Ket
         Ket          Ket
         \w          \w
Line 12206  No match Line 11858  No match
   
 /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/  /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
      \Maabbccddee       \Maabbccddee
Minimum match() limit = 12Minimum match() limit = 7
Minimum match() recursion limit = 3Minimum match() recursion limit = 2
  0: aabbccddee   0: aabbccddee
   
 /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/  /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
      \Maabbccddee       \Maabbccddee
Minimum match() limit = 22Minimum match() limit = 17
Minimum match() recursion limit = 21Minimum match() recursion limit = 16
  0: aabbccddee   0: aabbccddee
  1: aa   1: aa
  2: bb   2: bb
Line 12223  Minimum match() recursion limit = 21 Line 11875  Minimum match() recursion limit = 21
   
 /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/  /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
      \Maabbccddee       \Maabbccddee
Minimum match() limit = 18Minimum match() limit = 13
Minimum match() recursion limit = 13Minimum match() recursion limit = 10
  0: aabbccddee   0: aabbccddee
  1: aa   1: aa
  2: cc   2: cc
Line 12315  No match Line 11967  No match
 Failed: \N is not supported in a class at offset 3  Failed: \N is not supported in a class at offset 3
   
 /a[B-\Nc]/   /a[B-\Nc]/ 
Failed: \N is not supported in a class at offset 5Failed: invalid range in character class at offset 5
   
   /a[B\Nc]/ 
   Failed: \N is not supported in a class at offset 4
   
 /(a)(?2){0,1999}?(b)/  /(a)(?2){0,1999}?(b)/
   
 /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/  /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
Line 12376  No match, mark = m Line 12031  No match, mark = m
 /^a(*:X)bcde/K  /^a(*:X)bcde/K
    abc\P     abc\P
 Partial match, mark=X: abc  Partial match, mark=X: abc
      
   /-- These are here because Perl doesn't return a mark, except for the first --/
   
   /(?=(*:x))(q|)/K+
       abc
    0: 
    0+ abc
    1: 
   MK: x
   
   /(?=(*:x))((*:y)q|)/K+
       abc
    0: 
    0+ abc
    1: 
   MK: x
   
   /(?=(*:x))(?:(*:y)q|)/K+
       abc
    0: 
    0+ abc
   MK: x
   
   /(?=(*:x))(?>(*:y)q|)/K+
       abc
    0: 
    0+ abc
   MK: x
   
   /(?=a(*:x))(?!a(*:y)c)/K+
       ab
    0: 
    0+ ab
   MK: x
   
   /(?=a(*:x))(?=a(*:y)c|)/K+
       ab
    0: 
    0+ ab
   MK: x
   
   /(..)\1/
       ab\P
   Partial match: ab
       aba\P
   Partial match: aba
       abab\P
    0: abab
    1: ab
   
   /(..)\1/i
       ab\P
   Partial match: ab
       abA\P
   Partial match: abA
       aBAb\P
    0: aBAb
    1: aB
   
   /(..)\1{2,}/
       ab\P
   Partial match: ab
       aba\P
   Partial match: aba
       abab\P
   Partial match: abab
       ababa\P
   Partial match: ababa
       ababab\P
    0: ababab
    1: ab
       ababab\P\P
   Partial match: ababab
       abababa\P
    0: ababab
    1: ab
       abababa\P\P
   Partial match: abababa
   
   /(..)\1{2,}/i
       ab\P
   Partial match: ab
       aBa\P
   Partial match: aBa
       aBAb\P
   Partial match: aBAb
       AbaBA\P
   Partial match: AbaBA
       abABAb\P
    0: abABAb
    1: ab
       aBAbaB\P\P
   Partial match: aBAbaB
       abABabA\P
    0: abABab
    1: ab
       abaBABa\P\P
   Partial match: abaBABa
   
   /(..)\1{2,}?x/i
       ab\P
   Partial match: ab
       abA\P
   Partial match: abA
       aBAb\P
   Partial match: aBAb
       abaBA\P
   Partial match: abaBA
       abAbaB\P
   Partial match: abAbaB
       abaBabA\P
   Partial match: abaBabA
       abAbABaBx\P
    0: abAbABaBx
    1: ab
   
   /^(..)\1/
       aba\P
   Partial match: aba
   
   /^(..)\1{2,3}x/
       aba\P
   Partial match: aba
       ababa\P
   Partial match: ababa
       ababa\P\P
   Partial match: ababa
       abababx
    0: abababx
    1: ab
       ababababx  
    0: ababababx
    1: ab
   
   /^(..)\1{2,3}?x/
       aba\P
   Partial match: aba
       ababa\P
   Partial match: ababa
       ababa\P\P
   Partial match: ababa
       abababx
    0: abababx
    1: ab
       ababababx  
    0: ababababx
    1: ab
       
   /^(..)(\1{2,3})ab/
       abababab
    0: abababab
    1: ab
    2: abab
   
   /^\R/
       \r\P
    0: \x0d
       \r\P\P
   Partial match: \x0d
       
   /^\R{2,3}x/
       \r\P
   Partial match: \x0d
       \r\P\P
   Partial match: \x0d
       \r\r\P 
   Partial match: \x0d\x0d
       \r\r\P\P
   Partial match: \x0d\x0d
       \r\r\r\P  
   Partial match: \x0d\x0d\x0d
       \r\r\r\P\P
   Partial match: \x0d\x0d\x0d
       \r\rx
    0: \x0d\x0dx
       \r\r\rx    
    0: \x0d\x0d\x0dx
   
   /^\R{2,3}?x/
       \r\P
   Partial match: \x0d
       \r\P\P
   Partial match: \x0d
       \r\r\P 
   Partial match: \x0d\x0d
       \r\r\P\P
   Partial match: \x0d\x0d
       \r\r\r\P  
   Partial match: \x0d\x0d\x0d
       \r\r\r\P\P
   Partial match: \x0d\x0d\x0d
       \r\rx
    0: \x0d\x0dx
       \r\r\rx    
    0: \x0d\x0d\x0dx
       
   /^\R?x/
       \r\P
   Partial match: \x0d
       \r\P\P 
   Partial match: \x0d
       x
    0: x
       \rx  
    0: \x0dx
   
   /^\R+x/
       \r\P
   Partial match: \x0d
       \r\P\P 
   Partial match: \x0d
       \r\n\P
   Partial match: \x0d\x0a
       \r\n\P\P  
   Partial match: \x0d\x0a
       \rx  
    0: \x0dx
   
   /^a$/<CRLF>
       a\r\P
   Partial match: a\x0d
       a\r\P\P 
   Partial match: a\x0d
   
   /^a$/m<CRLF>
       a\r\P
   Partial match: a\x0d
       a\r\P\P 
   Partial match: a\x0d
   
   /^(a$|a\r)/<CRLF>
       a\r\P
    0: a\x0d
    1: a\x0d
       a\r\P\P 
   Partial match: a\x0d
   
   /^(a$|a\r)/m<CRLF>
       a\r\P
    0: a\x0d
    1: a\x0d
       a\r\P\P 
   Partial match: a\x0d
   
   /./<CRLF>
       \r\P
    0: \x0d
       \r\P\P 
   Partial match: \x0d
     
   /.{2,3}/<CRLF>
       \r\P 
   Partial match: \x0d
       \r\P\P
   Partial match: \x0d
       \r\r\P
    0: \x0d\x0d
       \r\r\P\P
   Partial match: \x0d\x0d
       \r\r\r\P
    0: \x0d\x0d\x0d
       \r\r\r\P\P     
   Partial match: \x0d\x0d\x0d
   
   /.{2,3}?/<CRLF>
       \r\P 
   Partial match: \x0d
       \r\P\P
   Partial match: \x0d
       \r\r\P
    0: \x0d\x0d
       \r\r\P\P
   Partial match: \x0d\x0d
       \r\r\r\P
    0: \x0d\x0d
       \r\r\r\P\P     
    0: \x0d\x0d
   
   "AB(C(D))(E(F))?(?(?=\2)(?=\4))"
       ABCDGHI\O03
   Matched, but too many substrings
    0: ABCD
       
   /-- These are all run as real matches in test 1; here we are just checking the
   settings of the anchored and startline bits. --/ 
   
   /(?>.*?a)(?<=ba)/I
   Capturing subpattern count = 0
   Max lookbehind = 2
   No options
   No first char
   Need char = 'a'
   
   /(?:.*?a)(?<=ba)/I
   Capturing subpattern count = 0
   Max lookbehind = 2
   No options
   First char at start or follows newline
   Need char = 'a'
   
   /.*?a(*PRUNE)b/I
   Capturing subpattern count = 0
   No options
   No first char
   Need char = 'b'
   
   /.*?a(*PRUNE)b/sI
   Capturing subpattern count = 0
   Options: dotall
   No first char
   Need char = 'b'
   
   /^a(*PRUNE)b/sI
   Capturing subpattern count = 0
   Options: anchored dotall
   No first char
   No need char
   
   /.*?a(*SKIP)b/I
   Capturing subpattern count = 0
   No options
   No first char
   Need char = 'b'
   
   /(?>.*?a)b/sI
   Capturing subpattern count = 0
   Options: dotall
   No first char
   Need char = 'b'
   
   /(?>.*?a)b/I
   Capturing subpattern count = 0
   No options
   No first char
   Need char = 'b'
   
   /(?>^a)b/sI
   Capturing subpattern count = 0
   Options: anchored dotall
   No first char
   No need char
   
   /(?>.*?)(?<=(abcd)|(wxyz))/I
   Capturing subpattern count = 2
   Max lookbehind = 4
   May match empty string
   No options
   No first char
   No need char
   
   /(?>.*)(?<=(abcd)|(wxyz))/I
   Capturing subpattern count = 2
   Max lookbehind = 4
   May match empty string
   No options
   No first char
   No need char
   
   "(?>.*)foo"I
   Capturing subpattern count = 0
   No options
   No first char
   Need char = 'o'
   
   "(?>.*?)foo"I
   Capturing subpattern count = 0
   No options
   No first char
   Need char = 'o'
   
   /(?>^abc)/mI
   Capturing subpattern count = 0
   Options: multiline
   First char at start or follows newline
   Need char = 'c'
   
   /(?>.*abc)/mI
   Capturing subpattern count = 0
   Options: multiline
   No first char
   Need char = 'c'
   
   /(?:.*abc)/mI
   Capturing subpattern count = 0
   Options: multiline
   First char at start or follows newline
   Need char = 'c'
   
   /-- Check PCRE_STUDY_EXTRA_NEEDED --/
   
   /.?/S-I
   Capturing subpattern count = 0
   May match empty string
   No options
   No first char
   No need char
   Study returned NULL
   
   /.?/S!I
   Capturing subpattern count = 0
   May match empty string
   No options
   No first char
   No need char
   Subject length lower bound = -1
   No set of starting bytes
   
   /(?:(a)+(?C1)bb|aa(?C2)b)/
       aab\C+
   Callout 1: last capture = 1
    0: <unset>
    1: a
   --->aab
       ^ ^     b
   Callout 1: last capture = 1
    0: <unset>
    1: a
   --->aab
       ^^      b
   Callout 2: last capture = -1
    0: <unset>
   --->aab
       ^ ^     b
    0: aab
      
   /(?:(a)++(?C1)bb|aa(?C2)b)/
       aab\C+ 
   Callout 1: last capture = 1
    0: <unset>
    1: a
   --->aab
       ^ ^     b
   Callout 2: last capture = -1
    0: <unset>
   --->aab
       ^ ^     b
    0: aab
       
   /(?:(?>(a))(?C1)bb|aa(?C2)b)/
       aab\C+ 
   Callout 1: last capture = 1
    0: <unset>
    1: a
   --->aab
       ^^      b
   Callout 2: last capture = -1
    0: <unset>
   --->aab
       ^ ^     b
    0: aab
   
   /(?:(?1)(?C1)x|ab(?C2))((a)){0}/                                                
       aab\C+ 
   Callout 1: last capture = -1
    0: <unset>
   --->aab
       ^^      x
   Callout 1: last capture = -1
    0: <unset>
   --->aab
        ^^     x
   Callout 2: last capture = -1
    0: <unset>
   --->aab
        ^ ^    )
    0: ab
   
   /(?1)(?C1)((a)(?C2)){0}/   
       aab\C+ 
   Callout 2: last capture = 2
    0: <unset>
    1: <unset>
    2: a
   --->aab
       ^^      )
   Callout 1: last capture = -1
    0: <unset>
   --->aab
       ^^      ((a)(?C2)){0}
    0: a
   
   /(?:(a)+(?C1)bb|aa(?C2)b)++/
       aab\C+
   Callout 1: last capture = 1
    0: <unset>
    1: a
   --->aab
       ^ ^     b
   Callout 1: last capture = 1
    0: <unset>
    1: a
   --->aab
       ^^      b
   Callout 2: last capture = -1
    0: <unset>
   --->aab
       ^ ^     b
    0: aab
       aab\C+\O2
   Callout 1: last capture = 1
    0: <unset>
   --->aab
       ^ ^     b
   Callout 1: last capture = 1
    0: <unset>
   --->aab
       ^^      b
   Callout 2: last capture = -1
    0: <unset>
   --->aab
       ^ ^     b
    0: aab
   
   /(ab)x|ab/
       ab\O3
    0: ab
       ab\O2 
    0: ab
     
   /(ab)/
       ab\O3
   Matched, but too many substrings
    0: ab
       ab\O2 
   Matched, but too many substrings
    0: ab
       
   /(?<=123)(*MARK:xx)abc/K
       xxxx123a\P\P
   Partial match at offset 7, mark=xx: 123a
       xxxx123a\P
   Partial match at offset 7, mark=xx: 123a
       
   /123\Kabc/
       xxxx123a\P\P
   Partial match: 123a
       xxxx123a\P
   Partial match: 123a
   
   /^(?(?=a)aa|bb)/C
       bb
   --->bb
    +0 ^      ^
    +1 ^      (?(?=a)aa|bb)
    +3 ^      (?=a)
    +6 ^      a
   +11 ^      b
   +12 ^^     b
   +13 ^ ^    )
   +14 ^ ^    
    0: bb
   
   /(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/
       bb
   --->bb
     1 ^      ^
     2 ^      (?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))
    99 ^      (?=(?C3)a(?C4))
     3 ^      a
     8 ^      b
     9 ^^     b
    10 ^ ^    )
    11 ^ ^    
    0: bb
   
   /-- Perl seems to have a bug with this one --/
   
   /aaaaa(*COMMIT)(*PRUNE)b|a+c/
       aaaaaac
    0: aaaac
       
   /-- Here are some that Perl treats differently because of the way it handles
   backtracking verbs. --/
   
    /(?!a(*COMMIT)b)ac|ad/
        ac
    0: ac
        ad 
    0: ad
   
   /^(?!a(*THEN)b|ac)../
        ac
   No match
        ad 
    0: ad
   
   /^(?=a(*THEN)b|ac)/
       ac
    0: 
       
   /\A.*?(?:a|b(*THEN)c)/
       ba
    0: ba
   
   /\A.*?(?:a|b(*THEN)c)++/
       ba
    0: ba
   
   /\A.*?(?:a|b(*THEN)c|d)/
       ba
    0: ba
   
   /(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/
       aac 
    0: aac
   
   /\A.*?(a|b(*THEN)c)/
       ba
    0: ba
    1: a
   
   /^(A(*THEN)B|A(*THEN)D)/
       AD           
    0: AD
    1: AD
       
   /(?!b(*THEN)a)bn|bnn/
       bnn
    0: bn
   
   /(?(?=b(*SKIP)a)bn|bnn)/
       bnn
   No match
   
   /(?=b(*THEN)a|)bn|bnn/
       bnn
    0: bn
   
   /-------------------------/ 
   
   /(*LIMIT_MATCH=12bc)abc/
   Failed: (*VERB) not recognized or malformed at offset 7
   
   /(*LIMIT_MATCH=4294967290)abc/
   Failed: (*VERB) not recognized or malformed at offset 7
   
   /(*LIMIT_RECURSION=4294967280)abc/I
   Capturing subpattern count = 0
   Recursion limit = 4294967280
   No options
   First char = 'a'
   Need char = 'c'
   
   /(a+)*zz/
       aaaaaaaaaaaaaz
   No match
       aaaaaaaaaaaaaz\q3000
   Error -8 (match limit exceeded)
   
   /(a+)*zz/S-
       aaaaaaaaaaaaaz\Q10 
   Error -21 (recursion limit exceeded)
   
   /(*LIMIT_MATCH=3000)(a+)*zz/I
   Capturing subpattern count = 1
   Match limit = 3000
   No options
   No first char
   Need char = 'z'
       aaaaaaaaaaaaaz
   Error -8 (match limit exceeded)
       aaaaaaaaaaaaaz\q60000
   Error -8 (match limit exceeded)
   
   /(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I
   Capturing subpattern count = 1
   Match limit = 3000
   No options
   No first char
   Need char = 'z'
       aaaaaaaaaaaaaz
   Error -8 (match limit exceeded)
   
   /(*LIMIT_MATCH=60000)(a+)*zz/I
   Capturing subpattern count = 1
   Match limit = 60000
   No options
   No first char
   Need char = 'z'
       aaaaaaaaaaaaaz
   No match
       aaaaaaaaaaaaaz\q3000
   Error -8 (match limit exceeded)
   
   /(*LIMIT_RECURSION=10)(a+)*zz/IS-
   Capturing subpattern count = 1
   Recursion limit = 10
   No options
   No first char
   Need char = 'z'
   Subject length lower bound = 2
   Starting byte set: a z 
       aaaaaaaaaaaaaz
   Error -21 (recursion limit exceeded)
       aaaaaaaaaaaaaz\Q1000
   Error -21 (recursion limit exceeded)
   
   /(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/IS-
   Capturing subpattern count = 1
   Recursion limit = 10
   No options
   No first char
   Need char = 'z'
   Subject length lower bound = 2
   Starting byte set: a z 
       aaaaaaaaaaaaaz
   Error -21 (recursion limit exceeded)
   
   /(*LIMIT_RECURSION=1000)(a+)*zz/IS-
   Capturing subpattern count = 1
   Recursion limit = 1000
   No options
   No first char
   Need char = 'z'
   Subject length lower bound = 2
   Starting byte set: a z 
       aaaaaaaaaaaaaz
   No match
       aaaaaaaaaaaaaz\Q10
   Error -21 (recursion limit exceeded)
   
   /-- This test causes a segfault with Perl 5.18.0 --/
   
   /^(?=(a)){0}b(?1)/
       backgammon
    0: ba
   
   /(?|(?<n>f)|(?<n>b))/JI
   Capturing subpattern count = 1
   Named capturing subpatterns:
     n   1
   Options: dupnames
   No first char
   No need char
   
   /(?<a>abc)(?<a>z)\k<a>()/JDZS
   ------------------------------------------------------------------
           Bra
           CBra 1
           abc
           Ket
           CBra 2
           z
           Ket
           \k<a>2
           CBra 3
           Ket
           Ket
           End
   ------------------------------------------------------------------
   Capturing subpattern count = 3
   Max back reference = 2
   Named capturing subpatterns:
     a   1
     a   2
   Options: dupnames
   First char = 'a'
   Need char = 'z'
   Subject length lower bound = 5
   No set of starting bytes
   
   /a*[bcd]/BZ
   ------------------------------------------------------------------
           Bra
           a*+
           [b-d]
           Ket
           End
   ------------------------------------------------------------------
   
   /[bcd]*a/BZ
   ------------------------------------------------------------------
           Bra
           [b-d]*+
           a
           Ket
           End
   ------------------------------------------------------------------
   
   /-- A complete set of tests for auto-possessification of character types --/
   
   /\D+\D \D+\d \D+\S \D+\s \D+\W \D+\w \D+. \D+\C \D+\R \D+\H \D+\h \D+\V \D+\v \D+\Z \D+\z \D+$/BZx
   ------------------------------------------------------------------
           Bra
           \D+
           \D
           \D++
           \d
           \D+
           \S
           \D+
           \s
           \D+
           \W
           \D+
           \w
           \D+
           Any
           \D+
           AllAny
           \D+
           \R
           \D+
           \H
           \D+
           \h
           \D+
           \V
           \D+
           \v
           \D+
           \Z
           \D++
           \z
           \D+
           $
           Ket
           End
   ------------------------------------------------------------------
   
   /\d+\D \d+\d \d+\S \d+\s \d+\W \d+\w \d+. \d+\C \d+\R \d+\H \d+\h \d+\V \d+\v \d+\Z \d+\z \d+$/BZx
   ------------------------------------------------------------------
           Bra
           \d++
           \D
           \d+
           \d
           \d+
           \S
           \d++
           \s
           \d++
           \W
           \d+
           \w
           \d+
           Any
           \d+
           AllAny
           \d++
           \R
           \d+
           \H
           \d++
           \h
           \d+
           \V
           \d++
           \v
           \d++
           \Z
           \d++
           \z
           \d++
           $
           Ket
           End
   ------------------------------------------------------------------
   
   /\S+\D \S+\d \S+\S \S+\s \S+\W \S+\w \S+. \S+\C \S+\R \S+\H \S+\h \S+\V \S+\v \S+\Z \S+\z \S+$/BZx
   ------------------------------------------------------------------
           Bra
           \S+
           \D
           \S+
           \d
           \S+
           \S
           \S++
           \s
           \S+
           \W
           \S+
           \w
           \S+
           Any
           \S+
           AllAny
           \S++
           \R
           \S+
           \H
           \S++
           \h
           \S+
           \V
           \S++
           \v
           \S++
           \Z
           \S++
           \z
           \S++
           $
           Ket
           End
   ------------------------------------------------------------------
   
   /\s+\D \s+\d \s+\S \s+\s \s+\W \s+\w \s+. \s+\C \s+\R \s+\H \s+\h \s+\V \s+\v \s+\Z \s+\z \s+$/BZx
   ------------------------------------------------------------------
           Bra
           \s+
           \D
           \s++
           \d
           \s++
           \S
           \s+
           \s
           \s+
           \W
           \s++
           \w
           \s+
           Any
           \s+
           AllAny
           \s+
           \R
           \s+
           \H
           \s+
           \h
           \s+
           \V
           \s+
           \v
           \s+
           \Z
           \s++
           \z
           \s+
           $
           Ket
           End
   ------------------------------------------------------------------
   
   /\W+\D \W+\d \W+\S \W+\s \W+\W \W+\w \W+. \W+\C \W+\R \W+\H \W+\h \W+\V \W+\v \W+\Z \W+\z \W+$/BZx
   ------------------------------------------------------------------
           Bra
           \W+
           \D
           \W++
           \d
           \W+
           \S
           \W+
           \s
           \W+
           \W
           \W++
           \w
           \W+
           Any
           \W+
           AllAny
           \W+
           \R
           \W+
           \H
           \W+
           \h
           \W+
           \V
           \W+
           \v
           \W+
           \Z
           \W++
           \z
           \W+
           $
           Ket
           End
   ------------------------------------------------------------------
   
   /\w+\D \w+\d \w+\S \w+\s \w+\W \w+\w \w+. \w+\C \w+\R \w+\H \w+\h \w+\V \w+\v \w+\Z \w+\z \w+$/BZx
   ------------------------------------------------------------------
           Bra
           \w+
           \D
           \w+
           \d
           \w+
           \S
           \w++
           \s
           \w++
           \W
           \w+
           \w
           \w+
           Any
           \w+
           AllAny
           \w++
           \R
           \w+
           \H
           \w++
           \h
           \w+
           \V
           \w++
           \v
           \w++
           \Z
           \w++
           \z
           \w++
           $
           Ket
           End
   ------------------------------------------------------------------
   
   /\C+\D \C+\d \C+\S \C+\s \C+\W \C+\w \C+. \C+\C \C+\R \C+\H \C+\h \C+\V \C+\v \C+\Z \C+\z \C+$/BZx
   ------------------------------------------------------------------
           Bra
           AllAny+
           \D
           AllAny+
           \d
           AllAny+
           \S
           AllAny+
           \s
           AllAny+
           \W
           AllAny+
           \w
           AllAny+
           Any
           AllAny+
           AllAny
           AllAny+
           \R
           AllAny+
           \H
           AllAny+
           \h
           AllAny+
           \V
           AllAny+
           \v
           AllAny+
           \Z
           AllAny++
           \z
           AllAny+
           $
           Ket
           End
   ------------------------------------------------------------------
   
   /\R+\D \R+\d \R+\S \R+\s \R+\W \R+\w \R+. \R+\C \R+\R \R+\H \R+\h \R+\V \R+\v \R+\Z \R+\z \R+$/BZx
   ------------------------------------------------------------------
           Bra
           \R+
           \D
           \R++
           \d
           \R+
           \S
           \R++
           \s
           \R+
           \W
           \R++
           \w
           \R++
           Any
           \R+
           AllAny
           \R+
           \R
           \R+
           \H
           \R++
           \h
           \R+
           \V
           \R+
           \v
           \R+
           \Z
           \R++
           \z
           \R+
           $
           Ket
           End
   ------------------------------------------------------------------
   
   /\H+\D \H+\d \H+\S \H+\s \H+\W \H+\w \H+. \H+\C \H+\R \H+\H \H+\h \H+\V \H+\v \H+\Z \H+\z \H+$/BZx
   ------------------------------------------------------------------
           Bra
           \H+
           \D
           \H+
           \d
           \H+
           \S
           \H+
           \s
           \H+
           \W
           \H+
           \w
           \H+
           Any
           \H+
           AllAny
           \H+
           \R
           \H+
           \H
           \H++
           \h
           \H+
           \V
           \H+
           \v
           \H+
           \Z
           \H++
           \z
           \H+
           $
           Ket
           End
   ------------------------------------------------------------------
   
   /\h+\D \h+\d \h+\S \h+\s \h+\W \h+\w \h+. \h+\C \h+\R \h+\H \h+\h \h+\V \h+\v \h+\Z \h+\z \h+$/BZx
   ------------------------------------------------------------------
           Bra
           \h+
           \D
           \h++
           \d
           \h++
           \S
           \h+
           \s
           \h+
           \W
           \h++
           \w
           \h+
           Any
           \h+
           AllAny
           \h++
           \R
           \h++
           \H
           \h+
           \h
           \h+
           \V
           \h++
           \v
           \h+
           \Z
           \h++
           \z
           \h+
           $
           Ket
           End
   ------------------------------------------------------------------
   
   /\V+\D \V+\d \V+\S \V+\s \V+\W \V+\w \V+. \V+\C \V+\R \V+\H \V+\h \V+\V \V+\v \V+\Z \V+\z \V+$/BZx
   ------------------------------------------------------------------
           Bra
           \V+
           \D
           \V+
           \d
           \V+
           \S
           \V+
           \s
           \V+
           \W
           \V+
           \w
           \V+
           Any
           \V+
           AllAny
           \V++
           \R
           \V+
           \H
           \V+
           \h
           \V+
           \V
           \V++
           \v
           \V+
           \Z
           \V++
           \z
           \V+
           $
           Ket
           End
   ------------------------------------------------------------------
   
   /\v+\D \v+\d \v+\S \v+\s \v+\W \v+\w \v+. \v+\C \v+\R \v+\H \v+\h \v+\V \v+\v \v+\Z \v+\z \v+$/BZx
   ------------------------------------------------------------------
           Bra
           \v+
           \D
           \v++
           \d
           \v++
           \S
           \v+
           \s
           \v+
           \W
           \v++
           \w
           \v+
           Any
           \v+
           AllAny
           \v+
           \R
           \v+
           \H
           \v++
           \h
           \v++
           \V
           \v+
           \v
           \v+
           \Z
           \v++
           \z
           \v+
           $
           Ket
           End
   ------------------------------------------------------------------
   
   / a+\D  a+\d  a+\S  a+\s  a+\W  a+\w  a+.  a+\C  a+\R  a+\H  a+\h  a+\V  a+\v  a+\Z  a+\z  a+$/BZx
   ------------------------------------------------------------------
           Bra
           a+
           \D
           a++
           \d
           a+
           \S
           a++
           \s
           a++
           \W
           a+
           \w
           a+
           Any
           a+
           AllAny
           a++
           \R
           a+
           \H
           a++
           \h
           a+
           \V
           a++
           \v
           a++
           \Z
           a++
           \z
           a++
           $
           Ket
           End
   ------------------------------------------------------------------
   
   /\n+\D \n+\d \n+\S \n+\s \n+\W \n+\w \n+. \n+\C \n+\R \n+\H \n+\h \n+\V \n+\v \n+\Z \n+\z \n+$/BZx
   ------------------------------------------------------------------
           Bra
           \x0a+
           \D
           \x0a++
           \d
           \x0a++
           \S
           \x0a+
           \s
           \x0a+
           \W
           \x0a++
           \w
           \x0a+
           Any
           \x0a+
           AllAny
           \x0a+
           \R
           \x0a+
           \H
           \x0a++
           \h
           \x0a++
           \V
           \x0a+
           \v
           \x0a+
           \Z
           \x0a++
           \z
           \x0a+
           $
           Ket
           End
   ------------------------------------------------------------------
   
   / .+\D  .+\d  .+\S  .+\s  .+\W  .+\w  .+.  .+\C  .+\R  .+\H  .+\h  .+\V  .+\v  .+\Z  .+\z  .+$/BZx
   ------------------------------------------------------------------
           Bra
           Any+
           \D
           Any+
           \d
           Any+
           \S
           Any+
           \s
           Any+
           \W
           Any+
           \w
           Any+
           Any
           Any+
           AllAny
           Any++
           \R
           Any+
           \H
           Any+
           \h
           Any+
           \V
           Any+
           \v
           Any+
           \Z
           Any++
           \z
           Any+
           $
           Ket
           End
   ------------------------------------------------------------------
   
   / .+\D  .+\d  .+\S  .+\s  .+\W  .+\w  .+.  .+\C  .+\R  .+\H  .+\h  .+\V  .+\v  .+\Z  .+\z  .+$/BZxs
   ------------------------------------------------------------------
           Bra
           AllAny+
           \D
           AllAny+
           \d
           AllAny+
           \S
           AllAny+
           \s
           AllAny+
           \W
           AllAny+
           \w
           AllAny+
           AllAny
           AllAny+
           AllAny
           AllAny+
           \R
           AllAny+
           \H
           AllAny+
           \h
           AllAny+
           \V
           AllAny+
           \v
           AllAny+
           \Z
           AllAny++
           \z
           AllAny+
           $
           Ket
           End
   ------------------------------------------------------------------
   
   /\D+$  \d+$  \S+$  \s+$  \W+$  \w+$  \C+$  \R+$  \H+$  \h+$  \V+$  \v+$   a+$  \n+$   .+$  .+$/BZxm
   ------------------------------------------------------------------
           Bra
           \D+
        /m $
           \d++
        /m $
           \S++
        /m $
           \s+
        /m $
           \W+
        /m $
           \w++
        /m $
           AllAny+
        /m $
           \R+
        /m $
           \H+
        /m $
           \h+
        /m $
           \V+
        /m $
           \v+
        /m $
           a+
        /m $
           \x0a+
        /m $
           Any+
        /m $
           Any+
        /m $
           Ket
           End
   ------------------------------------------------------------------
   
   /(?=a+)a(a+)++a/BZ
   ------------------------------------------------------------------
           Bra
           Assert
           a++
           Ket
           a
           CBraPos 1
           a++
           KetRpos
           a
           Ket
           End
   ------------------------------------------------------------------
   
   /a+(bb|cc)a+(?:bb|cc)a+(?>bb|cc)a+(?:bb|cc)+a+(aa)a+(?:bb|aa)/BZ
   ------------------------------------------------------------------
           Bra
           a++
           CBra 1
           bb
           Alt
           cc
           Ket
           a++
           Bra
           bb
           Alt
           cc
           Ket
           a++
           Once_NC
           bb
           Alt
           cc
           Ket
           a++
           Bra
           bb
           Alt
           cc
           KetRmax
           a+
           CBra 2
           aa
           Ket
           a+
           Bra
           bb
           Alt
           aa
           Ket
           Ket
           End
   ------------------------------------------------------------------
   
   /a+(bb|cc)?#a+(?:bb|cc)??#a+(?:bb|cc)?+#a+(?:bb|cc)*#a+(bb|cc)?a#a+(?:aa)?/BZ
   ------------------------------------------------------------------
           Bra
           a++
           Brazero
           CBra 1
           bb
           Alt
           cc
           Ket
           #
           a++
           Braminzero
           Bra
           bb
           Alt
           cc
           Ket
           #
           a++
           Once
           Brazero
           Bra
           bb
           Alt
           cc
           Ket
           Ket
           #
           a++
           Brazero
           Bra
           bb
           Alt
           cc
           KetRmax
           #
           a+
           Brazero
           CBra 2
           bb
           Alt
           cc
           Ket
           a#
           a+
           Brazero
           Bra
           aa
           Ket
           Ket
           End
   ------------------------------------------------------------------
   
   /a+(?:bb)?a#a+(?:|||)#a+(?:|b)a#a+(?:|||)?a/BZ
   ------------------------------------------------------------------
           Bra
           a+
           Brazero
           Bra
           bb
           Ket
           a#
           a++
           Bra
           Alt
           Alt
           Alt
           Ket
           #
           a+
           Bra
           Alt
           b
           Ket
           a#
           a+
           Brazero
           Bra
           Alt
           Alt
           Alt
           Ket
           a
           Ket
           End
   ------------------------------------------------------------------
   
   /[ab]*/BZ
   ------------------------------------------------------------------
           Bra
           [ab]*+
           Ket
           End
   ------------------------------------------------------------------
       aaaa
    0: aaaa
   
   /[ab]*?/BZ
   ------------------------------------------------------------------
           Bra
           [ab]*?
           Ket
           End
   ------------------------------------------------------------------
       aaaa
    0: 
   
   /[ab]?/BZ
   ------------------------------------------------------------------
           Bra
           [ab]?+
           Ket
           End
   ------------------------------------------------------------------
       aaaa
    0: a
   
   /[ab]??/BZ
   ------------------------------------------------------------------
           Bra
           [ab]??
           Ket
           End
   ------------------------------------------------------------------
       aaaa
    0: 
   
   /[ab]+/BZ
   ------------------------------------------------------------------
           Bra
           [ab]++
           Ket
           End
   ------------------------------------------------------------------
       aaaa
    0: aaaa
   
   /[ab]+?/BZ
   ------------------------------------------------------------------
           Bra
           [ab]+?
           Ket
           End
   ------------------------------------------------------------------
       aaaa
    0: a
   
   /[ab]{2,3}/BZ
   ------------------------------------------------------------------
           Bra
           [ab]{2,3}+
           Ket
           End
   ------------------------------------------------------------------
       aaaa
    0: aaa
   
   /[ab]{2,3}?/BZ
   ------------------------------------------------------------------
           Bra
           [ab]{2,3}?
           Ket
           End
   ------------------------------------------------------------------
       aaaa
    0: aa
   
   /[ab]{2,}/BZ
   ------------------------------------------------------------------
           Bra
           [ab]{2,}+
           Ket
           End
   ------------------------------------------------------------------
       aaaa
    0: aaaa
   
   /[ab]{2,}?/BZ
   ------------------------------------------------------------------
           Bra
           [ab]{2,}?
           Ket
           End
   ------------------------------------------------------------------
       aaaa
    0: aa
   
   /\d+\s{0,5}=\s*\S?=\w{0,4}\W*/BZ
   ------------------------------------------------------------------
           Bra
           \d++
           \s{0,5}+
           =
           \s*+
           \S?
           =
           \w{0,4}+
           \W*+
           Ket
           End
   ------------------------------------------------------------------
   
   /[a-d]{5,12}[e-z0-9]*#[^a-z]+[b-y]*a[2-7]?[^0-9a-z]+/BZ
   ------------------------------------------------------------------
           Bra
           [a-d]{5,12}+
           [0-9e-z]*+
           #
           [\x00-`{-\xff] (neg)++
           [b-y]*+
           a
           [2-7]?+
           [\x00-/:-`{-\xff] (neg)++
           Ket
           End
   ------------------------------------------------------------------
   
   /[a-z]*\s#[ \t]?\S#[a-c]*\S#[C-G]+?\d#[4-8]*\D#[4-9,]*\D#[!$]{0,5}\w#[M-Xf-l]+\W#[a-c,]?\W/BZ
   ------------------------------------------------------------------
           Bra
           [a-z]*+
           \s
           #
           [\x09 ]?+
           \S
           #
           [a-c]*
           \S
           #
           [C-G]++
           \d
           #
           [4-8]*+
           \D
           #
           [,4-9]*
           \D
           #
           [!$]{0,5}+
           \w
           #
           [M-Xf-l]++
           \W
           #
           [,a-c]?
           \W
           Ket
           End
   ------------------------------------------------------------------
   
   /a+(aa|bb)*c#a*(bb|cc)*a#a?(bb|cc)*d#[a-f]*(g|hh)*f/BZ
   ------------------------------------------------------------------
           Bra
           a+
           Brazero
           CBra 1
           aa
           Alt
           bb
           KetRmax
           c#
           a*
           Brazero
           CBra 2
           bb
           Alt
           cc
           KetRmax
           a#
           a?+
           Brazero
           CBra 3
           bb
           Alt
           cc
           KetRmax
           d#
           [a-f]*
           Brazero
           CBra 4
           g
           Alt
           hh
           KetRmax
           f
           Ket
           End
   ------------------------------------------------------------------
   
   /[a-f]*(g|hh|i)*i#[a-x]{4,}(y{0,6})*y#[a-k]+(ll|mm)+n/BZ
   ------------------------------------------------------------------
           Bra
           [a-f]*+
           Brazero
           CBra 1
           g
           Alt
           hh
           Alt
           i
           KetRmax
           i#
           [a-x]{4,}
           Brazero
           SCBra 2
           y{0,6}
           KetRmax
           y#
           [a-k]++
           CBra 3
           ll
           Alt
           mm
           KetRmax
           n
           Ket
           End
   ------------------------------------------------------------------
   
   /[a-f]*(?>gg|hh)+#[a-f]*(?>gg|hh)?#[a-f]*(?>gg|hh)*a#[a-f]*(?>gg|hh)*h/BZ
   ------------------------------------------------------------------
           Bra
           [a-f]*+
           Once_NC
           gg
           Alt
           hh
           KetRmax
           #
           [a-f]*+
           Brazero
           Once_NC
           gg
           Alt
           hh
           Ket
           #
           [a-f]*
           Brazero
           Once_NC
           gg
           Alt
           hh
           KetRmax
           a#
           [a-f]*+
           Brazero
           Once_NC
           gg
           Alt
           hh
           KetRmax
           h
           Ket
           End
   ------------------------------------------------------------------
   
   /[a-c]*d/DZS
   ------------------------------------------------------------------
           Bra
           [a-c]*+
           d
           Ket
           End
   ------------------------------------------------------------------
   Capturing subpattern count = 0
   No options
   No first char
   Need char = 'd'
   Subject length lower bound = 1
   Starting byte set: a b c d 
   
   /[a-c]+d/DZS
   ------------------------------------------------------------------
           Bra
           [a-c]++
           d
           Ket
           End
   ------------------------------------------------------------------
   Capturing subpattern count = 0
   No options
   No first char
   Need char = 'd'
   Subject length lower bound = 2
   Starting byte set: a b c 
   
   /[a-c]?d/DZS
   ------------------------------------------------------------------
           Bra
           [a-c]?+
           d
           Ket
           End
   ------------------------------------------------------------------
   Capturing subpattern count = 0
   No options
   No first char
   Need char = 'd'
   Subject length lower bound = 1
   Starting byte set: a b c d 
   
   /[a-c]{4,6}d/DZS
   ------------------------------------------------------------------
           Bra
           [a-c]{4,6}+
           d
           Ket
           End
   ------------------------------------------------------------------
   Capturing subpattern count = 0
   No options
   No first char
   Need char = 'd'
   Subject length lower bound = 5
   Starting byte set: a b c 
   
   /[a-c]{0,6}d/DZS
   ------------------------------------------------------------------
           Bra
           [a-c]{0,6}+
           d
           Ket
           End
   ------------------------------------------------------------------
   Capturing subpattern count = 0
   No options
   No first char
   Need char = 'd'
   Subject length lower bound = 1
   Starting byte set: a b c d 
   
   /-- End of special auto-possessive tests --/
   
   /^A\o{1239}B/
   Failed: non-octal character in \o{} (closing brace missing?) at offset 8
   
   /^A\oB/
   Failed: missing opening brace after \o at offset 3
   
   /^A\x{zz}B/ 
   Failed: non-hex character in \x{} (closing brace missing?) at offset 5
   
   /^A\x{12Z/
   Failed: non-hex character in \x{} (closing brace missing?) at offset 7
   
   /^A\x{/
   Failed: non-hex character in \x{} (closing brace missing?) at offset 5
   
   /[ab]++/BZO
   ------------------------------------------------------------------
           Bra
           [ab]++
           Ket
           End
   ------------------------------------------------------------------
   
   /[^ab]*+/BZO
   ------------------------------------------------------------------
           Bra
           [\x00-`c-\xff] (neg)*+
           Ket
           End
   ------------------------------------------------------------------
   
   /a{4}+/BZO
   ------------------------------------------------------------------
           Bra
           a{4}
           Ket
           End
   ------------------------------------------------------------------
   
   /a{4}+/BZOi
   ------------------------------------------------------------------
           Bra
        /i a{4}
           Ket
           End
   ------------------------------------------------------------------
   
   /[a-[:digit:]]+/
   Failed: invalid range in character class at offset 3
   
   /[A-[:digit:]]+/
   Failed: invalid range in character class at offset 3
   
   /[a-[.xxx.]]+/
   Failed: invalid range in character class at offset 3
   
   /[a-[=xxx=]]+/
   Failed: invalid range in character class at offset 3
   
   /[a-[!xxx!]]+/
   Failed: range out of order in character class at offset 3
   
   /[A-[!xxx!]]+/
       A]]]
    0: A]]]
   
   /[a-\d]+/
   Failed: invalid range in character class at offset 4
   
   /(?<0abc>xx)/
   Failed: group name must start with a non-digit at offset 3
   
   /(?&1abc)xx(?<1abc>y)/
   Failed: group name must start with a non-digit at offset 3
   
   /(?<ab-cd>xx)/
   Failed: syntax error in subpattern name (missing terminator) at offset 5
   
   /(?'0abc'xx)/
   Failed: group name must start with a non-digit at offset 3
   
   /(?P<0abc>xx)/
   Failed: group name must start with a non-digit at offset 4
   
   /\k<5ghj>/
   Failed: group name must start with a non-digit at offset 3
   
   /\k'5ghj'/
   Failed: group name must start with a non-digit at offset 3
   
   /\k{2fgh}/
   Failed: group name must start with a non-digit at offset 3
   
   /(?P=8yuki)/
   Failed: group name must start with a non-digit at offset 4
   
   /\g{4df}/
   Failed: group name must start with a non-digit at offset 3
   
   /(?&1abc)xx(?<1abc>y)/
   Failed: group name must start with a non-digit at offset 3
   
   /(?P>1abc)xx(?<1abc>y)/
   Failed: group name must start with a non-digit at offset 4
   
   /\g'3gh'/
   Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 7
   
   /\g<5fg>/
   Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 7
   
   /(?(<4gh>)abc)/
   Failed: group name must start with a non-digit at offset 4
   
   /(?('4gh')abc)/
   Failed: group name must start with a non-digit at offset 4
   
   /(?(4gh)abc)/
   Failed: malformed number or name after (?( at offset 4
   
   /(?(R&6yh)abc)/
   Failed: group name must start with a non-digit at offset 5
   
   /-- Test the ugly "start or end of word" compatibility syntax --/
   
   /[[:<:]]red[[:>:]]/BZ
   ------------------------------------------------------------------
           Bra
           \b
           Assert
           \w
           Ket
           red
           \b
           AssertB
           Reverse
           \w
           Ket
           Ket
           End
   ------------------------------------------------------------------
       little red riding hood
    0: red
       a /red/ thing 
    0: red
       red is a colour
    0: red
       put it all on red  
    0: red
       ** Failers
   No match
       no reduction
   No match
       Alfred Winifred
   No match
       
   /[a[:<:]] should give error/ 
   Failed: unknown POSIX class name at offset 4
   
 /-- End of testinput2 --/  /-- End of testinput2 --/

Removed from v.1.1  
changed lines
  Added in v.1.1.1.5


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>