Diff for /embedaddon/pcre/testdata/testoutput8 between versions 1.1.1.1 and 1.1.1.4

version 1.1.1.1, 2012/02/21 23:05:52 version 1.1.1.4, 2013/07/22 08:25:57
Line 1 Line 1
/-- This set of tests checks UTF-8 support with the DFA matching functionality/-- This set of tests check the DFA matching functionality of pcre_dfa_exec().
    of pcre_dfa_exec(). The -dfa flag must be used with pcretest when running     The -dfa flag must be used with pcretest when running it. --/
    it. --/     
/abc/
/\x{100}ab/8    abc
  \x{100}ab 0: abc
 0: \x{100}ab 
   
/a\x{100}*b/8 
    ab 
 0: ab 
    a\x{100}b   
 0: a\x{100}b 
    a\x{100}\x{100}b   
 0: a\x{100}\x{100}b 
           
/a\x{100}+b/8/ab*c/
    a\x{100}b      abc
 0: a\x{100}b 0: abc
    a\x{100}\x{100}b      abbbbc
 0: a\x{100}\x{100}b 0: abbbbc
     ac
  0: ac
     
 /ab+c/
     abc
  0: abc
     abbbbbbc
  0: abbbbbbc
     *** Failers       *** Failers 
 No match  No match
       ac
   No match
     ab      ab
 No match  No match
         
/\bX/8/a*/
    Xoanon    a
 0: X 0: a
    +Xoanon 1: 
 0: X    aaaaaaaaaaaaaaaaa
    \x{300}Xoanon  0: aaaaaaaaaaaaaaaaa
 0: X 1: aaaaaaaaaaaaaaaa
  2: aaaaaaaaaaaaaaa
  3: aaaaaaaaaaaaaa
  4: aaaaaaaaaaaaa
  5: aaaaaaaaaaaa
  6: aaaaaaaaaaa
  7: aaaaaaaaaa
  8: aaaaaaaaa
  9: aaaaaaaa
 10: aaaaaaa
 11: aaaaaa
 12: aaaaa
 13: aaaa
 14: aaa
 15: aa
 16: a
 17: 
     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
 Matched, but offsets vector is too small to show all matches
  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  2: aaaaaaaaaaaaaaaaaaaaaaaaaaaa
  3: aaaaaaaaaaaaaaaaaaaaaaaaaaa
  4: aaaaaaaaaaaaaaaaaaaaaaaaaa
  5: aaaaaaaaaaaaaaaaaaaaaaaaa
  6: aaaaaaaaaaaaaaaaaaaaaaaa
  7: aaaaaaaaaaaaaaaaaaaaaaa
  8: aaaaaaaaaaaaaaaaaaaaaa
  9: aaaaaaaaaaaaaaaaaaaaa
 10: aaaaaaaaaaaaaaaaaaaa
 11: aaaaaaaaaaaaaaaaaaa
 12: aaaaaaaaaaaaaaaaaa
 13: aaaaaaaaaaaaaaaaa
 14: aaaaaaaaaaaaaaaa
 15: aaaaaaaaaaaaaaa
 16: aaaaaaaaaaaaaa
 17: aaaaaaaaaaaaa
 18: aaaaaaaaaaaa
 19: aaaaaaaaaaa
 20: aaaaaaaaaa
 21: aaaaaaaaa
     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\F 
  0: 
     
 /(a|abcd|african)/
     a
  0: a
     abcd
  0: abcd
  1: a
     african
  0: african
  1: a
     
 /^abc/
     abcdef
  0: abc
     *** Failers
 No match
     xyzabc
 No match
     xyz\nabc    
 No match
     
 /^abc/m
     abcdef
  0: abc
     xyz\nabc    
  0: abc
     *** Failers
 No match
     xyzabc
 No match
     
 /\Aabc/
     abcdef
  0: abc
     *** Failers
 No match
     xyzabc
 No match
     xyz\nabc    
 No match
     
 /\Aabc/m
     abcdef
  0: abc
     *** Failers
 No match
     xyzabc
 No match
     xyz\nabc    
 No match
     
 /\Gabc/
     abcdef
  0: abc
     xyzabc\>3
  0: abc
     *** Failers
 No match
     xyzabc    
 No match
     xyzabc\>2 
 No match
     
 /x\dy\Dz/
     x9yzz
  0: x9yzz
     x0y+z
  0: x0y+z
     *** Failers
 No match
     xyz
 No match
     xxy0z     
 No match
     
 /x\sy\Sz/
     x yzz
  0: x yzz
     x y+z
  0: x y+z
     *** Failers
 No match
     xyz
 No match
     xxyyz
 No match
     
 /x\wy\Wz/
     xxy+z
  0: xxy+z
     *** Failers
 No match
     xxy0z
 No match
     x+y+z         
 No match
     
 /x.y/
     x+y
  0: x+y
     x-y
  0: x-y
     *** Failers
 No match
     x\ny
 No match
     
 /x.y/s
     x+y
  0: x+y
     x-y
  0: x-y
     x\ny
  0: x\x0ay
 
 /(a.b(?s)c.d|x.y)p.q/
     a+bc+dp+q
  0: a+bc+dp+q
     a+bc\ndp+q
  0: a+bc\x0adp+q
     x\nyp+q 
  0: x\x0ayp+q
     *** Failers       *** Failers 
 No match  No match
    YXoanon      a\nbc\ndp+q
 No match  No match
       a+bc\ndp\nq
   No match
       x\nyp\nq 
   No match
   
   /a\d\z/
       ba0
    0: a0
       *** Failers
   No match
       ba0\n
   No match
       ba0\ncd   
   No match
   
   /a\d\z/m
       ba0
    0: a0
       *** Failers
   No match
       ba0\n
   No match
       ba0\ncd   
   No match
   
   /a\d\Z/
       ba0
    0: a0
       ba0\n
    0: a0
       *** Failers
   No match
       ba0\ncd   
   No match
   
   /a\d\Z/m
       ba0
    0: a0
       ba0\n
    0: a0
       *** Failers
   No match
       ba0\ncd   
   No match
   
   /a\d$/
       ba0
    0: a0
       ba0\n
    0: a0
       *** Failers
   No match
       ba0\ncd   
   No match
   
   /a\d$/m
       ba0
    0: a0
       ba0\n
    0: a0
       ba0\ncd   
    0: a0
       *** Failers
   No match
   
   /abc/i
       abc
    0: abc
       aBc
    0: aBc
       ABC
    0: ABC
           
/\BX/8/[^a]/
    YXoanon    abcd
 0: X 0: b
     
 /ab?\w/
     abz
  0: abz
  1: ab
     abbz
  0: abb
  1: ab
     azz  
  0: az
 
 /x{0,3}yz/
     ayzq
  0: yz
     axyzq
  0: xyz
     axxyz
  0: xxyz
     axxxyzq
  0: xxxyz
     axxxxyzq
  0: xxxyz
     *** Failers      *** Failers
 No match  No match
    Xoanon    ax
 No match  No match
    +Xoanon        axx     
 No match  No match
    \x{300}Xoanon       
 /x{3}yz/
     axxxyzq
  0: xxxyz
     axxxxyzq
  0: xxxyz
     *** Failers
 No match  No match
       ax
   No match
       axx     
   No match
       ayzq
   No match
       axyzq
   No match
       axxyz
   No match
         
   /x{2,3}yz/
       axxyz
    0: xxyz
       axxxyzq
    0: xxxyz
       axxxxyzq
    0: xxxyz
       *** Failers
   No match
       ax
   No match
       axx     
   No match
       ayzq
   No match
       axyzq
   No match
         
   /[^a]+/
       bac
    0: b
       bcdefax
    0: bcdef
    1: bcde
    2: bcd
    3: bc
    4: b
       *** Failers
    0: *** F
    1: *** 
    2: ***
    3: **
    4: *
       aaaaa   
   No match
   
/X\b/8/[^a]*/
    X+oanon    bac
 0: X 0: b
    ZX\x{300}oanon  1: 
 0: X    bcdefax
    FA 0: bcdef
 0: X 1: bcde
  2: bcd
  3: bc
  4: b
  5: 
     *** Failers
  0: *** F
  1: *** 
  2: ***
  3: **
  4: *
  5: 
     aaaaa   
  0: 
     
 /[^a]{3,5}/
     xyz
  0: xyz
     awxyza
  0: wxyz
  1: wxy
     abcdefa
  0: bcdef
  1: bcde
  2: bcd
     abcdefghijk
  0: bcdef
  1: bcde
  2: bcd
     *** Failers
  0: *** F
  1: *** 
  2: ***
     axya
 No match
     axa
 No match
     aaaaa         
 No match
 
 /\d*/
     1234b567
  0: 1234
  1: 123
  2: 12
  3: 1
  4: 
     xyz
  0: 
     
 /\D*/
     a1234b567
  0: a
  1: 
     xyz
  0: xyz
  1: xy
  2: x
  3: 
      
 /\d+/
     ab1234c56
  0: 1234
  1: 123
  2: 12
  3: 1
     *** Failers
 No match
     xyz
 No match
     
 /\D+/
     ab123c56
  0: ab
  1: a
     *** Failers
  0: *** Failers
  1: *** Failer
  2: *** Faile
  3: *** Fail
  4: *** Fai
  5: *** Fa
  6: *** F
  7: *** 
  8: ***
  9: **
 10: *
     789
 No match
     
 /\d?A/
     045ABC
  0: 5A
     ABC
  0: A
     *** Failers
 No match
     XYZ
 No match
     
 /\D?A/
     ABC
  0: A
     BAC
  0: BA
     9ABC             
  0: A
     *** Failers
 No match
 
 /a+/
     aaaa
  0: aaaa
  1: aaa
  2: aa
  3: a
 
 /^.*xyz/
     xyz
  0: xyz
     ggggggggxyz
  0: ggggggggxyz
     
 /^.+xyz/
     abcdxyz
  0: abcdxyz
     axyz
  0: axyz
     *** Failers
 No match
     xyz
 No match
     
 /^.?xyz/
     xyz
  0: xyz
     cxyz       
  0: cxyz
 
 /^\d{2,3}X/
     12X
  0: 12X
     123X
  0: 123X
     *** Failers
 No match
     X
 No match
     1X
 No match
     1234X     
 No match
 
 /^[abcd]\d/
     a45
  0: a4
     b93
  0: b9
     c99z
  0: c9
     d04
  0: d0
     *** Failers
 No match
     e45
 No match
     abcd      
 No match
     abcd1234
 No match
     1234  
 No match
 
 /^[abcd]*\d/
     a45
  0: a4
     b93
  0: b9
     c99z
  0: c9
     d04
  0: d0
     abcd1234
  0: abcd1
     1234  
  0: 1
     *** Failers
 No match
     e45
 No match
     abcd      
 No match
 
 /^[abcd]+\d/
     a45
  0: a4
     b93
  0: b9
     c99z
  0: c9
     d04
  0: d0
     abcd1234
  0: abcd1
     *** Failers
 No match
     1234  
 No match
     e45
 No match
     abcd      
 No match
 
 /^a+X/
     aX
  0: aX
     aaX 
  0: aaX
 
 /^[abcd]?\d/
     a45
  0: a4
     b93
  0: b9
     c99z
  0: c9
     d04
  0: d0
     1234  
  0: 1
     *** Failers
 No match
     abcd1234
 No match
     e45
 No match
 
 /^[abcd]{2,3}\d/
     ab45
  0: ab4
     bcd93
  0: bcd9
     *** Failers
 No match
     1234 
 No match
     a36 
 No match
     abcd1234
 No match
     ee45
 No match
 
 /^(abc)*\d/
     abc45
  0: abc4
     abcabcabc45
  0: abcabcabc4
     42xyz 
  0: 4
     *** Failers
 No match
 
 /^(abc)+\d/
     abc45
  0: abc4
     abcabcabc45
  0: abcabcabc4
     *** Failers
 No match
     42xyz 
 No match
 
 /^(abc)?\d/
     abc45
  0: abc4
     42xyz 
  0: 4
     *** Failers
 No match
     abcabcabc45
 No match
 
 /^(abc){2,3}\d/
     abcabc45
  0: abcabc4
     abcabcabc45
  0: abcabcabc4
     *** Failers
 No match
     abcabcabcabc45
 No match
     abc45
 No match
     42xyz 
 No match
 
 /1(abc|xyz)2(?1)3/
     1abc2abc3456
  0: 1abc2abc3
     1abc2xyz3456 
  0: 1abc2xyz3
 
 /^(a*\w|ab)=(a*\w|ab)/
     ab=ab
  0: ab=ab
  1: ab=a
 
 /^(a*\w|ab)=(?1)/
     ab=ab
  0: ab=ab
  1: ab=a
 
 /^([^()]|\((?1)*\))*$/
     abc
  0: abc
     a(b)c
  0: a(b)c
     a(b(c))d  
  0: a(b(c))d
     *** Failers)
 No match
     a(b(c)d  
 No match
 
 /^>abc>([^()]|\((?1)*\))*<xyz<$/
     >abc>123<xyz<
  0: >abc>123<xyz<
     >abc>1(2)3<xyz<
  0: >abc>1(2)3<xyz<
     >abc>(1(2)3)<xyz<
  0: >abc>(1(2)3)<xyz<
 
 /^(?>a*)\d/
     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9876
  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9
     *** Failers       *** Failers 
 No match  No match
    Xoanon      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 No match  No match
   
   /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x
       <>
    0: <>
       <abcd>
    0: <abcd>
       <abc <123> hij>
    0: <abc <123> hij>
       <abc <def> hij>
    0: <def>
       <abc<>def> 
    0: <abc<>def>
       <abc<>      
    0: <>
       *** Failers
   No match
       <abc
   No match
   
   /^(?(?=abc)\w{3}:|\d\d)$/        
       abc:                          
    0: abc:
       12                             
    0: 12
       *** Failers                     
   No match
       123                       
   No match
       xyz                        
   No match
                                   
   /^(?(?!abc)\d\d|\w{3}:)$/      
       abc:                        
    0: abc:
       12         
    0: 12
       *** Failers
   No match
       123
   No match
       xyz    
   No match
   
   /^(?=abc)\w{5}:$/        
       abcde:                          
    0: abcde:
       *** Failers                     
   No match
       abc.. 
   No match
       123                       
   No match
       vwxyz                        
   No match
                                   
   /^(?!abc)\d\d$/      
       12         
    0: 12
       *** Failers
   No match
       abcde:
   No match
       abc..  
   No match
       123
   No match
       vwxyz    
   No match
   
   /(?<=abc|xy)123/
       abc12345
    0: 123
       wxy123z
    0: 123
       *** Failers
   No match
       123abc
   No match
   
   /(?<!abc|xy)123/
       123abc
    0: 123
       mno123456 
    0: 123
       *** Failers
   No match
       abc12345
   No match
       wxy123z
   No match
   
   /abc(?C1)xyz/
       abcxyz
   --->abcxyz
     1 ^  ^       x
    0: abcxyz
       123abcxyz999 
   --->123abcxyz999
     1    ^  ^          x
    0: abcxyz
   
   /(ab|cd){3,4}/C
     ababab
   --->ababab
    +0 ^          (ab|cd){3,4}
    +1 ^          a
    +4 ^          c
    +2 ^^         b
    +3 ^ ^        |
    +1 ^ ^        a
    +4 ^ ^        c
    +2 ^  ^       b
    +3 ^   ^      |
    +1 ^   ^      a
    +4 ^   ^      c
    +2 ^    ^     b
    +3 ^     ^    |
   +12 ^     ^    
    +1 ^     ^    a
    +4 ^     ^    c
    0: ababab
     abcdabcd
   --->abcdabcd
    +0 ^            (ab|cd){3,4}
    +1 ^            a
    +4 ^            c
    +2 ^^           b
    +3 ^ ^          |
    +1 ^ ^          a
    +4 ^ ^          c
    +5 ^  ^         d
    +6 ^   ^        )
    +1 ^   ^        a
    +4 ^   ^        c
    +2 ^    ^       b
    +3 ^     ^      |
   +12 ^     ^      
    +1 ^     ^      a
    +4 ^     ^      c
    +5 ^      ^     d
    +6 ^       ^    )
   +12 ^       ^    
    0: abcdabcd
    1: abcdab
     abcdcdcdcdcd  
   --->abcdcdcdcdcd
    +0 ^                (ab|cd){3,4}
    +1 ^                a
    +4 ^                c
    +2 ^^               b
    +3 ^ ^              |
    +1 ^ ^              a
    +4 ^ ^              c
    +5 ^  ^             d
    +6 ^   ^            )
    +1 ^   ^            a
    +4 ^   ^            c
    +5 ^    ^           d
    +6 ^     ^          )
   +12 ^     ^          
    +1 ^     ^          a
    +4 ^     ^          c
    +5 ^      ^         d
    +6 ^       ^        )
   +12 ^       ^        
    0: abcdcdcd
    1: abcdcd
   
   /^abc/
       abcdef
    0: abc
       *** Failers
   No match
       abcdef\B  
   No match
   
   /^(a*|xyz)/
       bcd
    0: 
       aaabcd
    0: aaa
    1: aa
    2: a
    3: 
       xyz
    0: xyz
    1: 
       xyz\N  
    0: xyz
       *** Failers
    0: 
       bcd\N   
   No match
           
/X\B/8/xyz$/
    Xoanon      xyz
 0: X 0: xyz
     xyz\n
  0: xyz
     *** Failers      *** Failers
 No match  No match
    X+oanon    xyz\Z
 No match  No match
    ZX\x{300}oanon     xyz\n\Z    
 No match  No match
    FAX     
 /xyz$/m
     xyz
  0: xyz
     xyz\n 
  0: xyz
     abcxyz\npqr 
  0: xyz
     abcxyz\npqr\Z 
  0: xyz
     xyz\n\Z    
  0: xyz
     *** Failers
 No match  No match
       xyz\Z
   No match
   
   /\Gabc/
       abcdef
    0: abc
       defabcxyz\>3 
    0: abc
       *** Failers 
   No match
       defabcxyz
   No match
   
   /^abcdef/
       ab\P
   Partial match: ab
       abcde\P
   Partial match: abcde
       abcdef\P
    0: abcdef
       *** Failers
   No match
       abx\P    
   No match
   
   /^a{2,4}\d+z/
       a\P
   Partial match: a
       aa\P
   Partial match: aa
       aa2\P 
   Partial match: aa2
       aaa\P
   Partial match: aaa
       aaa23\P 
   Partial match: aaa23
       aaaa12345\P
   Partial match: aaaa12345
       aa0z\P
    0: aa0z
       aaaa4444444444444z\P 
    0: aaaa4444444444444z
       *** Failers
   No match
       az\P 
   No match
       aaaaa\P 
   No match
       a56\P 
   No match
   
   /^abcdef/
      abc\P
   Partial match: abc
      def\R 
    0: def
      
   /(?<=foo)bar/
      xyzfo\P 
   No match
      foob\P\>2 
   Partial match at offset 3: foob
      foobar...\R\P\>4 
    0: ar
      xyzfo\P
   No match
      foobar\>2  
    0: bar
      *** Failers
   No match
      xyzfo\P
   No match
      obar\R   
   No match
   
   /(ab*(cd|ef))+X/
       adfadadaklhlkalkajhlkjahdfasdfasdfladsfjkj\P\Z
   No match
       lkjhlkjhlkjhlkjhabbbbbbcdaefabbbbbbbefa\P\B\Z
   Partial match: abbbbbbcdaefabbbbbbbefa
       cdabbbbbbbb\P\R\B\Z
   Partial match: cdabbbbbbbb
       efabbbbbbbbbbbbbbbb\P\R\B\Z
   Partial match: efabbbbbbbbbbbbbbbb
       bbbbbbbbbbbbcdXyasdfadf\P\R\B\Z    
    0: bbbbbbbbbbbbcdX
   
   /(a|b)/SF>testsavedregex
   Compiled pattern written to testsavedregex
   Study data written to testsavedregex
   <testsavedregex
   Compiled pattern (byte-inverted) loaded from testsavedregex
   Study data loaded from testsavedregex
       abc
    0: a
       ** Failers
    0: a
       def  
   No match
           
/[^a]/8/the quick brown fox/
    abcd    the quick brown fox
  0: the quick brown fox
     The quick brown FOX
 No match
     What do you know about the quick brown fox?
  0: the quick brown fox
     What do you know about THE QUICK BROWN FOX?
 No match
 
 /The quick brown fox/i
     the quick brown fox
  0: the quick brown fox
     The quick brown FOX
  0: The quick brown FOX
     What do you know about the quick brown fox?
  0: the quick brown fox
     What do you know about THE QUICK BROWN FOX?
  0: THE QUICK BROWN FOX
 
 /abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
     abcd\t\n\r\f\a\e9;\$\\?caxyz
  0: abcd\x09\x0a\x0d\x0c\x07\x1b9;$\?caxyz
 
 /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
     abxyzpqrrrabbxyyyypqAzz
  0: abxyzpqrrrabbxyyyypqAzz
     abxyzpqrrrabbxyyyypqAzz
  0: abxyzpqrrrabbxyyyypqAzz
     aabxyzpqrrrabbxyyyypqAzz
  0: aabxyzpqrrrabbxyyyypqAzz
     aaabxyzpqrrrabbxyyyypqAzz
  0: aaabxyzpqrrrabbxyyyypqAzz
     aaaabxyzpqrrrabbxyyyypqAzz
  0: aaaabxyzpqrrrabbxyyyypqAzz
     abcxyzpqrrrabbxyyyypqAzz
  0: abcxyzpqrrrabbxyyyypqAzz
     aabcxyzpqrrrabbxyyyypqAzz
  0: aabcxyzpqrrrabbxyyyypqAzz
     aaabcxyzpqrrrabbxyyyypAzz
  0: aaabcxyzpqrrrabbxyyyypAzz
     aaabcxyzpqrrrabbxyyyypqAzz
  0: aaabcxyzpqrrrabbxyyyypqAzz
     aaabcxyzpqrrrabbxyyyypqqAzz
  0: aaabcxyzpqrrrabbxyyyypqqAzz
     aaabcxyzpqrrrabbxyyyypqqqAzz
  0: aaabcxyzpqrrrabbxyyyypqqqAzz
     aaabcxyzpqrrrabbxyyyypqqqqAzz
  0: aaabcxyzpqrrrabbxyyyypqqqqAzz
     aaabcxyzpqrrrabbxyyyypqqqqqAzz
  0: aaabcxyzpqrrrabbxyyyypqqqqqAzz
     aaabcxyzpqrrrabbxyyyypqqqqqqAzz
  0: aaabcxyzpqrrrabbxyyyypqqqqqqAzz
     aaaabcxyzpqrrrabbxyyyypqAzz
  0: aaaabcxyzpqrrrabbxyyyypqAzz
     abxyzzpqrrrabbxyyyypqAzz
  0: abxyzzpqrrrabbxyyyypqAzz
     aabxyzzzpqrrrabbxyyyypqAzz
  0: aabxyzzzpqrrrabbxyyyypqAzz
     aaabxyzzzzpqrrrabbxyyyypqAzz
  0: aaabxyzzzzpqrrrabbxyyyypqAzz
     aaaabxyzzzzpqrrrabbxyyyypqAzz
  0: aaaabxyzzzzpqrrrabbxyyyypqAzz
     abcxyzzpqrrrabbxyyyypqAzz
  0: abcxyzzpqrrrabbxyyyypqAzz
     aabcxyzzzpqrrrabbxyyyypqAzz
  0: aabcxyzzzpqrrrabbxyyyypqAzz
     aaabcxyzzzzpqrrrabbxyyyypqAzz
  0: aaabcxyzzzzpqrrrabbxyyyypqAzz
     aaaabcxyzzzzpqrrrabbxyyyypqAzz
  0: aaaabcxyzzzzpqrrrabbxyyyypqAzz
     aaaabcxyzzzzpqrrrabbbxyyyypqAzz
  0: aaaabcxyzzzzpqrrrabbbxyyyypqAzz
     aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
  0: aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
     aaabcxyzpqrrrabbxyyyypABzz
  0: aaabcxyzpqrrrabbxyyyypABzz
     aaabcxyzpqrrrabbxyyyypABBzz
  0: aaabcxyzpqrrrabbxyyyypABBzz
     >>>aaabxyzpqrrrabbxyyyypqAzz
  0: aaabxyzpqrrrabbxyyyypqAzz
     >aaaabxyzpqrrrabbxyyyypqAzz
  0: aaaabxyzpqrrrabbxyyyypqAzz
     >>>>abcxyzpqrrrabbxyyyypqAzz
  0: abcxyzpqrrrabbxyyyypqAzz
     *** Failers
 No match
     abxyzpqrrabbxyyyypqAzz
 No match
     abxyzpqrrrrabbxyyyypqAzz
 No match
     abxyzpqrrrabxyyyypqAzz
 No match
     aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz
 No match
     aaaabcxyzzzzpqrrrabbbxyyypqAzz
 No match
     aaabcxyzpqrrrabbxyyyypqqqqqqqAzz
 No match
 
 /^(abc){1,2}zz/
     abczz
  0: abczz
     abcabczz
  0: abcabczz
     *** Failers
 No match
     zz
 No match
     abcabcabczz
 No match
     >>abczz
 No match
 
 /^(b+?|a){1,2}?c/
     bc
  0: bc
     bbc
  0: bbc
     bbbc
  0: bbbc
     bac
  0: bac
     bbac
  0: bbac
     aac
  0: aac
     abbbbbbbbbbbc
  0: abbbbbbbbbbbc
     bbbbbbbbbbbac
  0: bbbbbbbbbbbac
     *** Failers
 No match
     aaac
 No match
     abbbbbbbbbbbac
 No match
 
 /^(b+|a){1,2}c/
     bc
  0: bc
     bbc
  0: bbc
     bbbc
  0: bbbc
     bac
  0: bac
     bbac
  0: bbac
     aac
  0: aac
     abbbbbbbbbbbc
  0: abbbbbbbbbbbc
     bbbbbbbbbbbac
  0: bbbbbbbbbbbac
     *** Failers
 No match
     aaac
 No match
     abbbbbbbbbbbac
 No match
 
 /^(b+|a){1,2}?bc/
     bbc
  0: bbc
 
 /^(b*|ba){1,2}?bc/
     babc
  0: babc
     bbabc
  0: bbabc
     bababc
  0: bababc
     *** Failers
 No match
     bababbc
 No match
     babababc
 No match
 
 /^(ba|b*){1,2}?bc/
     babc
  0: babc
     bbabc
  0: bbabc
     bababc
  0: bababc
     *** Failers
 No match
     bababbc
 No match
     babababc
 No match
 
 /^\ca\cA\c[\c{\c:/
     \x01\x01\e;z
  0: \x01\x01\x1b;z
 
 /^[ab\]cde]/
     athing
  0: a
     bthing
  0: b   0: b
    a\x{100}       ]thing
 0: \x{100} 0: ]
     cthing