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

version 1.1.1.4, 2013/07/22 08:25:57 version 1.1.1.5, 2014/06/15 19:46:05
Line 7 Line 7
           
     NOTE: This is a non-UTF set of tests. When UTF support is needed, use      NOTE: This is a non-UTF set of tests. When UTF support is needed, use
     test 5, and if Unicode Property Support is needed, use test 7. --/      test 5, and if Unicode Property Support is needed, use test 7. --/
       
   < forbid 8W 
       
 /(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 228  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 498  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 545  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 762  No match Line 766  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  Max lookbehind = 3
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 769  No need char Line 774  No need char
 /(?>.*)(?<=(abcd)|(xyz))/I  /(?>.*)(?<=(abcd)|(xyz))/I
 Capturing subpattern count = 2  Capturing subpattern count = 2
 Max lookbehind = 4  Max lookbehind = 4
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 1377  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 1395  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 1594  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 1612  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 2625  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 2644  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 2656  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 2767  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 2866  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 2882  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 2908  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 3075  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 3154  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 3289  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 3307  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 3373  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 3601  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 3634  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 3770  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 3880  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 4159  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 4258  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 4265  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 4272  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 4423  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 4441  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 4518  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 4538  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 4569  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 4576  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 5290  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 5303  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 5316  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 5329  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 5343  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 5397  Need char = '3' Line 5432  Need char = '3'
 /\b.*/I  /\b.*/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
 Max lookbehind = 1  Max lookbehind = 1
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 5406  No need char Line 5442  No need char
 /\b.*/Is  /\b.*/Is
 Capturing subpattern count = 0  Capturing subpattern count = 0
 Max lookbehind = 1  Max lookbehind = 1
   May match empty string
 Options: dotall  Options: dotall
 No first char  No first char
 No need char  No need char
Line 5414  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 6002  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 6014  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 6024  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 6034  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 6046  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 6095  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 6305  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 6377  No options Line 6431  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 6488  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 6497  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 6544  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 7467  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 7609  No match Line 7665  No match
 ------------------------------------------------------------------  ------------------------------------------------------------------
         Bra          Bra
         ^          ^
        [a-z]+        [a-z]++
         Ket          Ket
         End          End
 ------------------------------------------------------------------  ------------------------------------------------------------------
Line 7650  No match Line 7706  No match
         ^          ^
         CBra 1          CBra 1
         Cond          Cond
      2 Cond nref      2 Cond ref
         y          y
         Ket          Ket
         [()]          [()]
Line 7710  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 7809  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 8041  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 8546  No match Line 8597  No match
         \d          \d
         \v++          \v++
         \w          \w
        \v+        \v++
         \S          \S
         \v++          \v++
         \V          \V
Line 8644  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 9233  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 9249  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 9353  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 9363  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 10160  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 10233  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 10279  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 11036  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 11060  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 11084  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 11108  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 11519  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 11645  Starting byte set: < o t u  Line 11724  Starting byte set: < o t u 
   
 /a(*SKIP)c|b(*ACCEPT)|/+S!I  /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
Line 11715  Minimum match() recursion limit = 45 Line 11795  Minimum match() recursion limit = 45
         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 11778  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 11795  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 11887  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 12293  No need char Line 12376  No need char
 /(?>.*?)(?<=(abcd)|(wxyz))/I  /(?>.*?)(?<=(abcd)|(wxyz))/I
 Capturing subpattern count = 2  Capturing subpattern count = 2
 Max lookbehind = 4  Max lookbehind = 4
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 12300  No need char Line 12384  No need char
 /(?>.*)(?<=(abcd)|(wxyz))/I  /(?>.*)(?<=(abcd)|(wxyz))/I
 Capturing subpattern count = 2  Capturing subpattern count = 2
 Max lookbehind = 4  Max lookbehind = 4
   May match empty string
 No options  No options
 No first char  No first char
 No need char  No need char
Line 12338  Need char = 'c' Line 12423  Need char = 'c'
   
 /.?/S-I  /.?/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
Line 12345  Study returned NULL Line 12431  Study returned NULL
   
 /.?/S!I  /.?/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
Line 12664  Starting byte set: a z  Line 12751  Starting byte set: a z 
 No match  No match
     aaaaaaaaaaaaaz\Q10      aaaaaaaaaaaaaz\Q10
 Error -21 (recursion limit exceeded)  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.1.4  
changed lines
  Added in v.1.1.1.5


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