[WIN32] removed the pcre sources from our repo
[vuplus_xbmc] / lib / win32 / pcre / testdata / testoutput7
diff --git a/lib/win32/pcre/testdata/testoutput7 b/lib/win32/pcre/testdata/testoutput7
deleted file mode 100644 (file)
index c6c9df4..0000000
+++ /dev/null
@@ -1,7587 +0,0 @@
-/-- This set of tests check the DFA matching functionality of pcre_dfa_exec().
-    The -dfa flag must be used with pcretest when running it. --/
-     
-/abc/
-    abc
- 0: abc
-    
-/ab*c/
-    abc
- 0: abc
-    abbbbc
- 0: abbbbc
-    ac
- 0: ac
-    
-/ab+c/
-    abc
- 0: abc
-    abbbbbbc
- 0: abbbbbbc
-    *** Failers 
-No match
-    ac
-No match
-    ab
-No match
-    
-/a*/
-    a
- 0: a
- 1: 
-    aaaaaaaaaaaaaaaaa
- 0: aaaaaaaaaaaaaaaaa
- 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 too many subsidiary 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 
-No match
-    a\nbc\ndp+q
-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
-    
-/[^a]/
-    abcd
- 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
-No match
-    ax
-No match
-    axx     
-No match
-      
-/x{3}yz/
-    axxxyzq
- 0: xxxyz
-    axxxxyzq
- 0: xxxyz
-    *** Failers
-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
-
-/[^a]*/
-    bac
- 0: b
- 1: 
-    bcdefax
- 0: bcdef
- 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)*\))*$/
-    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 
-No match
-    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-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
-    
-/xyz$/
-    xyz
- 0: xyz
-    xyz\n
- 0: xyz
-    *** Failers
-No match
-    xyz\Z
-No match
-    xyz\n\Z    
-No match
-    
-/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
-    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: 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 regex written to testsavedregex
-Study data written to testsavedregex
-<testsavedregex
-Compiled regex (byte-inverted) loaded from testsavedregex
-Study data loaded from testsavedregex
-    abc
- 0: a
-    ** Failers
- 0: a
-    def  
-No match
-    
-/the quick brown fox/
-    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
-    ]thing
- 0: ]
-    cthing
- 0: c
-    dthing
- 0: d
-    ething
- 0: e
-    *** Failers
-No match
-    fthing
-No match
-    [thing
-No match
-    \\thing
-No match
-
-/^[]cde]/
-    ]thing
- 0: ]
-    cthing
- 0: c
-    dthing
- 0: d
-    ething
- 0: e
-    *** Failers
-No match
-    athing
-No match
-    fthing
-No match
-
-/^[^ab\]cde]/
-    fthing
- 0: f
-    [thing
- 0: [
-    \\thing
- 0: \
-    *** Failers
- 0: *
-    athing
-No match
-    bthing
-No match
-    ]thing
-No match
-    cthing
-No match
-    dthing
-No match
-    ething
-No match
-
-/^[^]cde]/
-    athing
- 0: a
-    fthing
- 0: f
-    *** Failers
- 0: *
-    ]thing
-No match
-    cthing
-No match
-    dthing
-No match
-    ething
-No match
-
-/^\\81/
-    \81
- 0: \x81
-
-/^ÿ/
-    Ã¿
- 0: \xff
-
-/^[0-9]+$/
-    0
- 0: 0
-    1
- 0: 1
-    2
- 0: 2
-    3
- 0: 3
-    4
- 0: 4
-    5
- 0: 5
-    6
- 0: 6
-    7
- 0: 7
-    8
- 0: 8
-    9
- 0: 9
-    10
- 0: 10
-    100
- 0: 100
-    *** Failers
-No match
-    abc
-No match
-
-/^.*nter/
-    enter
- 0: enter
-    inter
- 0: inter
-    uponter
- 0: uponter
-
-/^xxx[0-9]+$/
-    xxx0
- 0: xxx0
-    xxx1234
- 0: xxx1234
-    *** Failers
-No match
-    xxx
-No match
-
-/^.+[0-9][0-9][0-9]$/
-    x123
- 0: x123
-    xx123
- 0: xx123
-    123456
- 0: 123456
-    *** Failers
-No match
-    123
-No match
-    x1234
- 0: x1234
-
-/^.+?[0-9][0-9][0-9]$/
-    x123
- 0: x123
-    xx123
- 0: xx123
-    123456
- 0: 123456
-    *** Failers
-No match
-    123
-No match
-    x1234
- 0: x1234
-
-/^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/
-    abc!pqr=apquxz.ixr.zzz.ac.uk
- 0: abc!pqr=apquxz.ixr.zzz.ac.uk
-    *** Failers
-No match
-    !pqr=apquxz.ixr.zzz.ac.uk
-No match
-    abc!=apquxz.ixr.zzz.ac.uk
-No match
-    abc!pqr=apquxz:ixr.zzz.ac.uk
-No match
-    abc!pqr=apquxz.ixr.zzz.ac.ukk
-No match
-
-/:/
-    Well, we need a colon: somewhere
- 0: :
-    *** Fail if we don't
-No match
-
-/([\da-f:]+)$/i
-    0abc
- 0: 0abc
-    abc
- 0: abc
-    fed
- 0: fed
-    E
- 0: E
-    ::
- 0: ::
-    5f03:12C0::932e
- 0: 5f03:12C0::932e
-    fed def
- 0: def
-    Any old stuff
- 0: ff
-    *** Failers
-No match
-    0zzz
-No match
-    gzzz
-No match
-    fed\x20
-No match
-    Any old rubbish
-No match
-
-/^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
-    .1.2.3
- 0: .1.2.3
-    A.12.123.0
- 0: A.12.123.0
-    *** Failers
-No match
-    .1.2.3333
-No match
-    1.2.3
-No match
-    1234.2.3
-No match
-
-/^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
-    1 IN SOA non-sp1 non-sp2(
- 0: 1 IN SOA non-sp1 non-sp2(
-    1    IN    SOA    non-sp1    non-sp2   (
- 0: 1    IN    SOA    non-sp1    non-sp2   (
-    *** Failers
-No match
-    1IN SOA non-sp1 non-sp2(
-No match
-
-/^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/
-    a.
- 0: a.
-    Z.
- 0: Z.
-    2.
- 0: 2.
-    ab-c.pq-r.
- 0: ab-c.pq-r.
-    sxk.zzz.ac.uk.
- 0: sxk.zzz.ac.uk.
-    x-.y-.
- 0: x-.y-.
-    *** Failers
-No match
-    -abc.peq.
-No match
-
-/^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/
-    *.a
- 0: *.a
-    *.b0-a
- 0: *.b0-a
-    *.c3-b.c
- 0: *.c3-b.c
-    *.c-a.b-c
- 0: *.c-a.b-c
-    *** Failers
-No match
-    *.0
-No match
-    *.a-
-No match
-    *.a-b.c-
-No match
-    *.c-a.0-c
-No match
-
-/^(?=ab(de))(abd)(e)/
-    abde
- 0: abde
-
-/^(?!(ab)de|x)(abd)(f)/
-    abdf
- 0: abdf
-
-/^(?=(ab(cd)))(ab)/
-    abcd
- 0: ab
-
-/^[\da-f](\.[\da-f])*$/i
-    a.b.c.d
- 0: a.b.c.d
-    A.B.C.D
- 0: A.B.C.D
-    a.b.c.1.2.3.C
- 0: a.b.c.1.2.3.C
-
-/^\".*\"\s*(;.*)?$/
-    \"1234\"
- 0: "1234"
-    \"abcd\" ;
- 0: "abcd" ;
-    \"\" ; rhubarb
- 0: "" ; rhubarb
-    *** Failers
-No match
-    \"1234\" : things
-No match
-
-/^$/
-    \
- 0: 
-    *** Failers
-No match
-
-/   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/x
-    ab c
- 0: ab c
-    *** Failers
-No match
-    abc
-No match
-    ab cde
-No match
-
-/(?x)   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/
-    ab c
- 0: ab c
-    *** Failers
-No match
-    abc
-No match
-    ab cde
-No match
-
-/^   a\ b[c ]d       $/x
-    a bcd
- 0: a bcd
-    a b d
- 0: a b d
-    *** Failers
-No match
-    abcd
-No match
-    ab d
-No match
-
-/^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
-    abcdefhijklm
- 0: abcdefhijklm
-
-/^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
-    abcdefhijklm
- 0: abcdefhijklm
-
-/^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
-    a+ Z0+\x08\n\x1d\x12
- 0: a+ Z0+\x08\x0a\x1d\x12
-
-/^[.^$|()*+?{,}]+/
-    .^\$(*+)|{?,?}
- 0: .^$(*+)|{?,?}
- 1: .^$(*+)|{?,?
- 2: .^$(*+)|{?,
- 3: .^$(*+)|{?
- 4: .^$(*+)|{
- 5: .^$(*+)|
- 6: .^$(*+)
- 7: .^$(*+
- 8: .^$(*
- 9: .^$(
-10: .^$
-11: .^
-12: .
-
-/^a*\w/
-    z
- 0: z
-    az
- 0: az
- 1: a
-    aaaz
- 0: aaaz
- 1: aaa
- 2: aa
- 3: a
-    a
- 0: a
-    aa
- 0: aa
- 1: a
-    aaaa
- 0: aaaa
- 1: aaa
- 2: aa
- 3: a
-    a+
- 0: a
-    aa+
- 0: aa
- 1: a
-
-/^a*?\w/
-    z
- 0: z
-    az
- 0: az
- 1: a
-    aaaz
- 0: aaaz
- 1: aaa
- 2: aa
- 3: a
-    a
- 0: a
-    aa
- 0: aa
- 1: a
-    aaaa
- 0: aaaa
- 1: aaa
- 2: aa
- 3: a
-    a+
- 0: a
-    aa+
- 0: aa
- 1: a
-
-/^a+\w/
-    az
- 0: az
-    aaaz
- 0: aaaz
- 1: aaa
- 2: aa
-    aa
- 0: aa
-    aaaa
- 0: aaaa
- 1: aaa
- 2: aa
-    aa+
- 0: aa
-
-/^a+?\w/
-    az
- 0: az
-    aaaz
- 0: aaaz
- 1: aaa
- 2: aa
-    aa
- 0: aa
-    aaaa
- 0: aaaa
- 1: aaa
- 2: aa
-    aa+
- 0: aa
-
-/^\d{8}\w{2,}/
-    1234567890
- 0: 1234567890
-    12345678ab
- 0: 12345678ab
-    12345678__
- 0: 12345678__
-    *** Failers
-No match
-    1234567
-No match
-
-/^[aeiou\d]{4,5}$/
-    uoie
- 0: uoie
-    1234
- 0: 1234
-    12345
- 0: 12345
-    aaaaa
- 0: aaaaa
-    *** Failers
-No match
-    123456
-No match
-
-/^[aeiou\d]{4,5}?/
-    uoie
- 0: uoie
-    1234
- 0: 1234
-    12345
- 0: 12345
- 1: 1234
-    aaaaa
- 0: aaaaa
- 1: aaaa
-    123456
- 0: 12345
- 1: 1234
-
-/^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/
-    From abcd  Mon Sep 01 12:33:02 1997
- 0: From abcd  Mon Sep 01 12:33
-
-/^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/
-    From abcd  Mon Sep 01 12:33:02 1997
- 0: From abcd  Mon Sep 01 12:33
-    From abcd  Mon Sep  1 12:33:02 1997
- 0: From abcd  Mon Sep  1 12:33
-    *** Failers
-No match
-    From abcd  Sep 01 12:33:02 1997
-No match
-
-/^12.34/s
-    12\n34
- 0: 12\x0a34
-    12\r34
- 0: 12\x0d34
-
-/\w+(?=\t)/
-    the quick brown\t fox
- 0: brown
-
-/foo(?!bar)(.*)/
-    foobar is foolish see?
- 0: foolish see?
- 1: foolish see
- 2: foolish se
- 3: foolish s
- 4: foolish 
- 5: foolish
- 6: foolis
- 7: fooli
- 8: fool
- 9: foo
-
-/(?:(?!foo)...|^.{0,2})bar(.*)/
-    foobar crowbar etc
- 0: rowbar etc
- 1: rowbar et
- 2: rowbar e
- 3: rowbar 
- 4: rowbar
-    barrel
- 0: barrel
- 1: barre
- 2: barr
- 3: bar
-    2barrel
- 0: 2barrel
- 1: 2barre
- 2: 2barr
- 3: 2bar
-    A barrel
- 0: A barrel
- 1: A barre
- 2: A barr
- 3: A bar
-
-/^(\D*)(?=\d)(?!123)/
-    abc456
- 0: abc
-    *** Failers
-No match
-    abc123
-No match
-
-/^1234(?# test newlines
-  inside)/
-    1234
- 0: 1234
-
-/^1234 #comment in extended re
-  /x
-    1234
- 0: 1234
-
-/#rhubarb
-  abcd/x
-    abcd
- 0: abcd
-
-/^abcd#rhubarb/x
-    abcd
- 0: abcd
-
-/(?!^)abc/
-    the abc
- 0: abc
-    *** Failers
-No match
-    abc
-No match
-
-/(?=^)abc/
-    abc
- 0: abc
-    *** Failers
-No match
-    the abc
-No match
-
-/^[ab]{1,3}(ab*|b)/
-    aabbbbb
- 0: aabbbbb
- 1: aabbbb
- 2: aabbb
- 3: aabb
- 4: aab
- 5: aa
-
-/^[ab]{1,3}?(ab*|b)/
-    aabbbbb
- 0: aabbbbb
- 1: aabbbb
- 2: aabbb
- 3: aabb
- 4: aab
- 5: aa
-
-/^[ab]{1,3}?(ab*?|b)/
-    aabbbbb
- 0: aabbbbb
- 1: aabbbb
- 2: aabbb
- 3: aabb
- 4: aab
- 5: aa
-
-/^[ab]{1,3}(ab*?|b)/
-    aabbbbb
- 0: aabbbbb
- 1: aabbbb
- 2: aabbb
- 3: aabb
- 4: aab
- 5: aa
-
-/  (?: [\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
-/x
-    Alan Other <user\@dom.ain>
- 0: Alan Other <user@dom.ain>
-    <user\@dom.ain>
- 0: user@dom.ain
- 1: user@dom
-    user\@dom.ain
- 0: user@dom.ain
- 1: user@dom
-    \"A. Other\" <user.1234\@dom.ain> (a comment)
- 0: "A. Other" <user.1234@dom.ain> (a comment)
- 1: "A. Other" <user.1234@dom.ain> 
- 2: "A. Other" <user.1234@dom.ain>
-    A. Other <user.1234\@dom.ain> (a comment)
- 0:  Other <user.1234@dom.ain> (a comment)
- 1:  Other <user.1234@dom.ain> 
- 2:  Other <user.1234@dom.ain>
-    \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
- 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay
- 1: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re
-    A missing angle <user\@some.where
- 0: user@some.where
- 1: user@some
-    *** Failers
-No match
-    The quick brown fox
-No match
-
-/[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# 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
-# Atom
-|                       #  or
-"                                     # "
-[^\\\x80-\xff\n\015"] *                            #   normal
-(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
-"                                     #        "
-# Quoted string
-)
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-(?:
-\.
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-(?:
-[^(\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
-# Atom
-|                       #  or
-"                                     # "
-[^\\\x80-\xff\n\015"] *                            #   normal
-(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
-"                                     #        "
-# Quoted string
-)
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# additional words
-)*
-@
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-(?:
-[^(\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
-\]                           #           ]
-)
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# optional trailing comments
-(?:
-\.
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-(?:
-[^(\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
-\]                           #           ]
-)
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# optional trailing comments
-)*
-# 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
-# Atom
-|                       #  or
-"                                     # "
-[^\\\x80-\xff\n\015"] *                            #   normal
-(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
-"                                     #        "
-# Quoted string
-)
-# leading word
-[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] *               # "normal" atoms and or spaces
-(?:
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-|
-"                                     # "
-[^\\\x80-\xff\n\015"] *                            #   normal
-(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
-"                                     #        "
-) # "special" comment or quoted string
-[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] *            #  more "normal"
-)*
-<
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# <
-(?:
-@
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-(?:
-[^(\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
-\]                           #           ]
-)
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# optional trailing comments
-(?:
-\.
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-(?:
-[^(\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
-\]                           #           ]
-)
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# optional trailing comments
-)*
-(?: ,
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-@
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-(?:
-[^(\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
-\]                           #           ]
-)
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# optional trailing comments
-(?:
-\.
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-(?:
-[^(\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
-\]                           #           ]
-)
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# optional trailing comments
-)*
-)*  # additional domains
-:
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# optional trailing comments
-)?     #       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
-# Atom
-|                       #  or
-"                                     # "
-[^\\\x80-\xff\n\015"] *                            #   normal
-(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
-"                                     #        "
-# Quoted string
-)
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-(?:
-\.
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-(?:
-[^(\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
-# Atom
-|                       #  or
-"                                     # "
-[^\\\x80-\xff\n\015"] *                            #   normal
-(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
-"                                     #        "
-# Quoted string
-)
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# additional words
-)*
-@
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-(?:
-[^(\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
-\]                           #           ]
-)
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# optional trailing comments
-(?:
-\.
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-(?:
-[^(\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
-\]                           #           ]
-)
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# optional trailing comments
-)*
-#       address spec
->                    #                 >
-# name and address
-)
-/x
-    Alan Other <user\@dom.ain>
- 0: Alan Other <user@dom.ain>
-    <user\@dom.ain>
- 0: user@dom.ain
- 1: user@dom
-    user\@dom.ain
- 0: user@dom.ain
- 1: user@dom
-    \"A. Other\" <user.1234\@dom.ain> (a comment)
- 0: "A. Other" <user.1234@dom.ain>
-    A. Other <user.1234\@dom.ain> (a comment)
- 0:  Other <user.1234@dom.ain>
-    \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
- 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay
- 1: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re
-    A missing angle <user\@some.where
- 0: user@some.where
- 1: user@some
-    *** Failers
-No match
-    The quick brown fox
-No match
-
-/abc\0def\00pqr\000xyz\0000AB/
-    abc\0def\00pqr\000xyz\0000AB
- 0: abc\x00def\x00pqr\x00xyz\x000AB
-    abc456 abc\0def\00pqr\000xyz\0000ABCDE
- 0: abc\x00def\x00pqr\x00xyz\x000AB
-
-/abc\x0def\x00pqr\x000xyz\x0000AB/
-    abc\x0def\x00pqr\x000xyz\x0000AB
- 0: abc\x0def\x00pqr\x000xyz\x0000AB
-    abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE
- 0: abc\x0def\x00pqr\x000xyz\x0000AB
-
-/^[\000-\037]/
-    \0A
- 0: \x00
-    \01B
- 0: \x01
-    \037C
- 0: \x1f
-
-/\0*/
-    \0\0\0\0
- 0: \x00\x00\x00\x00
- 1: \x00\x00\x00
- 2: \x00\x00
- 3: \x00
- 4: 
-
-/A\x0{2,3}Z/
-    The A\x0\x0Z
- 0: A\x00\x00Z
-    An A\0\x0\0Z
- 0: A\x00\x00\x00Z
-    *** Failers
-No match
-    A\0Z
-No match
-    A\0\x0\0\x0Z
-No match
-
-/^\s/
-    \040abc
- 0:  
-    \x0cabc
- 0: \x0c
-    \nabc
- 0: \x0a
-    \rabc
- 0: \x0d
-    \tabc
- 0: \x09
-    *** Failers
-No match
-    abc
-No match
-
-/^a    b
-    \f  c/x
-    abc
- 0: abc
-
-/ab{1,3}bc/
-    abbbbc
- 0: abbbbc
-    abbbc
- 0: abbbc
-    abbc
- 0: abbc
-    *** Failers
-No match
-    abc
-No match
-    abbbbbc
-No match
-
-/([^.]*)\.([^:]*):[T ]+(.*)/
-    track1.title:TBlah blah blah
- 0: track1.title:TBlah blah blah
- 1: track1.title:TBlah blah bla
- 2: track1.title:TBlah blah bl
- 3: track1.title:TBlah blah b
- 4: track1.title:TBlah blah 
- 5: track1.title:TBlah blah
- 6: track1.title:TBlah bla
- 7: track1.title:TBlah bl
- 8: track1.title:TBlah b
- 9: track1.title:TBlah 
-10: track1.title:TBlah
-11: track1.title:TBla
-12: track1.title:TBl
-13: track1.title:TB
-14: track1.title:T
-
-/([^.]*)\.([^:]*):[T ]+(.*)/i
-    track1.title:TBlah blah blah
- 0: track1.title:TBlah blah blah
- 1: track1.title:TBlah blah bla
- 2: track1.title:TBlah blah bl
- 3: track1.title:TBlah blah b
- 4: track1.title:TBlah blah 
- 5: track1.title:TBlah blah
- 6: track1.title:TBlah bla
- 7: track1.title:TBlah bl
- 8: track1.title:TBlah b
- 9: track1.title:TBlah 
-10: track1.title:TBlah
-11: track1.title:TBla
-12: track1.title:TBl
-13: track1.title:TB
-14: track1.title:T
-
-/([^.]*)\.([^:]*):[t ]+(.*)/i
-    track1.title:TBlah blah blah
- 0: track1.title:TBlah blah blah
- 1: track1.title:TBlah blah bla
- 2: track1.title:TBlah blah bl
- 3: track1.title:TBlah blah b
- 4: track1.title:TBlah blah 
- 5: track1.title:TBlah blah
- 6: track1.title:TBlah bla
- 7: track1.title:TBlah bl
- 8: track1.title:TBlah b
- 9: track1.title:TBlah 
-10: track1.title:TBlah
-11: track1.title:TBla
-12: track1.title:TBl
-13: track1.title:TB
-14: track1.title:T
-
-/^[W-c]+$/
-    WXY_^abc
- 0: WXY_^abc
-    *** Failers
-No match
-    wxy
-No match
-
-/^[W-c]+$/i
-    WXY_^abc
- 0: WXY_^abc
-    wxy_^ABC
- 0: wxy_^ABC
-
-/^[\x3f-\x5F]+$/i
-    WXY_^abc
- 0: WXY_^abc
-    wxy_^ABC
- 0: wxy_^ABC
-
-/^abc$/m
-    abc
- 0: abc
-    qqq\nabc
- 0: abc
-    abc\nzzz
- 0: abc
-    qqq\nabc\nzzz
- 0: abc
-
-/^abc$/
-    abc
- 0: abc
-    *** Failers
-No match
-    qqq\nabc
-No match
-    abc\nzzz
-No match
-    qqq\nabc\nzzz
-No match
-
-/\Aabc\Z/m
-    abc
- 0: abc
-    abc\n 
- 0: abc
-    *** Failers
-No match
-    qqq\nabc
-No match
-    abc\nzzz
-No match
-    qqq\nabc\nzzz
-No match
-    
-/\A(.)*\Z/s
-    abc\ndef
- 0: abc\x0adef
-
-/\A(.)*\Z/m
-    *** Failers
- 0: *** Failers
-    abc\ndef
-No match
-
-/(?:b)|(?::+)/
-    b::c
- 0: b
-    c::b
- 0: ::
- 1: :
-
-/[-az]+/
-    az-
- 0: az-
- 1: az
- 2: a
-    *** Failers
- 0: a
-    b
-No match
-
-/[az-]+/
-    za-
- 0: za-
- 1: za
- 2: z
-    *** Failers
- 0: a
-    b
-No match
-
-/[a\-z]+/
-    a-z
- 0: a-z
- 1: a-
- 2: a
-    *** Failers
- 0: a
-    b
-No match
-
-/[a-z]+/
-    abcdxyz
- 0: abcdxyz
- 1: abcdxy
- 2: abcdx
- 3: abcd
- 4: abc
- 5: ab
- 6: a
-
-/[\d-]+/
-    12-34
- 0: 12-34
- 1: 12-3
- 2: 12-
- 3: 12
- 4: 1
-    *** Failers
-No match
-    aaa
-No match
-
-/[\d-z]+/
-    12-34z
- 0: 12-34z
- 1: 12-34
- 2: 12-3
- 3: 12-
- 4: 12
- 5: 1
-    *** Failers
-No match
-    aaa
-No match
-
-/\x5c/
-    \\
- 0: \
-
-/\x20Z/
-    the Zoo
- 0:  Z
-    *** Failers
-No match
-    Zulu
-No match
-
-/ab{3cd/
-    ab{3cd
- 0: ab{3cd
-
-/ab{3,cd/
-    ab{3,cd
- 0: ab{3,cd
-
-/ab{3,4a}cd/
-    ab{3,4a}cd
- 0: ab{3,4a}cd
-
-/{4,5a}bc/
-    {4,5a}bc
- 0: {4,5a}bc
-
-/^a.b/<lf>
-    a\rb
- 0: a\x0db
-    *** Failers
-No match
-    a\nb
-No match
-
-/abc$/
-    abc
- 0: abc
-    abc\n
- 0: abc
-    *** Failers
-No match
-    abc\ndef
-No match
-
-/(abc)\123/
-    abc\x53
- 0: abcS
-
-/(abc)\223/
-    abc\x93
- 0: abc\x93
-
-/(abc)\323/
-    abc\xd3
- 0: abc\xd3
-
-/(abc)\100/
-    abc\x40
- 0: abc@
-    abc\100
- 0: abc@
-
-/(abc)\1000/
-    abc\x400
- 0: abc@0
-    abc\x40\x30
- 0: abc@0
-    abc\1000
- 0: abc@0
-    abc\100\x30
- 0: abc@0
-    abc\100\060
- 0: abc@0
-    abc\100\60
- 0: abc@0
-
-/abc\81/
-    abc\081
- 0: abc\x0081
-    abc\0\x38\x31
- 0: abc\x0081
-
-/abc\91/
-    abc\091
- 0: abc\x0091
-    abc\0\x39\x31
- 0: abc\x0091
-
-/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
-    abcdefghijk\12S
- 0: abcdefghijk\x0aS
-
-/ab\idef/
-    abidef
- 0: abidef
-
-/a{0}bc/
-    bc
- 0: bc
-
-/(a|(bc)){0,0}?xyz/
-    xyz
- 0: xyz
-
-/abc[\10]de/
-    abc\010de
- 0: abc\x08de
-
-/abc[\1]de/
-    abc\1de
- 0: abc\x01de
-
-/(abc)[\1]de/
-    abc\1de
- 0: abc\x01de
-
-/(?s)a.b/
-    a\nb
- 0: a\x0ab
-
-/^([^a])([^\b])([^c]*)([^d]{3,4})/
-    baNOTccccd
- 0: baNOTcccc
- 1: baNOTccc
- 2: baNOTcc
- 3: baNOTc
- 4: baNOT
-    baNOTcccd
- 0: baNOTccc
- 1: baNOTcc
- 2: baNOTc
- 3: baNOT
-    baNOTccd
- 0: baNOTcc
- 1: baNOTc
- 2: baNOT
-    bacccd
- 0: baccc
-    *** Failers
- 0: *** Failers
- 1: *** Failer
- 2: *** Faile
- 3: *** Fail
- 4: *** Fai
- 5: *** Fa
- 6: *** F
-    anything
-No match
-    b\bc   
-No match
-    baccd
-No match
-
-/[^a]/
-    Abc
- 0: A
-  
-/[^a]/i
-    Abc 
- 0: b
-
-/[^a]+/
-    AAAaAbc
- 0: AAA
- 1: AA
- 2: A
-  
-/[^a]+/i
-    AAAaAbc 
- 0: bc
- 1: b
-
-/[^a]+/
-    bbb\nccc
- 0: bbb\x0accc
- 1: bbb\x0acc
- 2: bbb\x0ac
- 3: bbb\x0a
- 4: bbb
- 5: bb
- 6: b
-   
-/[^k]$/
-    abc
- 0: c
-    *** Failers
- 0: s
-    abk   
-No match
-   
-/[^k]{2,3}$/
-    abc
- 0: abc
-    kbc
- 0: bc
-    kabc 
- 0: abc
-    *** Failers
- 0: ers
-    abk
-No match
-    akb
-No match
-    akk 
-No match
-
-/^\d{8,}\@.+[^k]$/
-    12345678\@a.b.c.d
- 0: 12345678@a.b.c.d
-    123456789\@x.y.z
- 0: 123456789@x.y.z
-    *** Failers
-No match
-    12345678\@x.y.uk
-No match
-    1234567\@a.b.c.d       
-No match
-
-/[^a]/
-    aaaabcd
- 0: b
-    aaAabcd 
- 0: A
-
-/[^a]/i
-    aaaabcd
- 0: b
-    aaAabcd 
- 0: b
-
-/[^az]/
-    aaaabcd
- 0: b
-    aaAabcd 
- 0: A
-
-/[^az]/i
-    aaaabcd
- 0: b
-    aaAabcd 
- 0: b
-
-/\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377/
- \000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377
- 0: \x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff
-
-/P[^*]TAIRE[^*]{1,6}?LL/
-    xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
- 0: PSTAIREISLL
-
-/P[^*]TAIRE[^*]{1,}?LL/
-    xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
- 0: PSTAIREISLL
-
-/(\.\d\d[1-9]?)\d+/
-    1.230003938
- 0: .230003938
- 1: .23000393
- 2: .2300039
- 3: .230003
- 4: .23000
- 5: .2300
- 6: .230
-    1.875000282   
- 0: .875000282
- 1: .87500028
- 2: .8750002
- 3: .875000
- 4: .87500
- 5: .8750
- 6: .875
-    1.235  
- 0: .235
-                  
-/(\.\d\d((?=0)|\d(?=\d)))/
-    1.230003938      
- 0: .230
- 1: .23
-    1.875000282
- 0: .875
-    *** Failers 
-No match
-    1.235 
-No match
-    
-/a(?)b/
-    ab 
- 0: ab
-/\b(foo)\s+(\w+)/i
-    Food is on the foo table
- 0: foo table
- 1: foo tabl
- 2: foo tab
- 3: foo ta
- 4: foo t
-    
-/foo(.*)bar/
-    The food is under the bar in the barn.
- 0: food is under the bar in the bar
- 1: food is under the bar
-    
-/foo(.*?)bar/  
-    The food is under the bar in the barn.
- 0: food is under the bar in the bar
- 1: food is under the bar
-
-/(.*)(\d*)/
-    I have 2 numbers: 53147
-Matched, but too many subsidiary matches
- 0: I have 2 numbers: 53147
- 1: I have 2 numbers: 5314
- 2: I have 2 numbers: 531
- 3: I have 2 numbers: 53
- 4: I have 2 numbers: 5
- 5: I have 2 numbers: 
- 6: I have 2 numbers:
- 7: I have 2 numbers
- 8: I have 2 number
- 9: I have 2 numbe
-10: I have 2 numb
-11: I have 2 num
-12: I have 2 nu
-13: I have 2 n
-14: I have 2 
-15: I have 2
-16: I have 
-17: I have
-18: I hav
-19: I ha
-20: I h
-21: I 
-    
-/(.*)(\d+)/
-    I have 2 numbers: 53147
- 0: I have 2 numbers: 53147
- 1: I have 2 numbers: 5314
- 2: I have 2 numbers: 531
- 3: I have 2 numbers: 53
- 4: I have 2 numbers: 5
- 5: I have 2
-/(.*?)(\d*)/
-    I have 2 numbers: 53147
-Matched, but too many subsidiary matches
- 0: I have 2 numbers: 53147
- 1: I have 2 numbers: 5314
- 2: I have 2 numbers: 531
- 3: I have 2 numbers: 53
- 4: I have 2 numbers: 5
- 5: I have 2 numbers: 
- 6: I have 2 numbers:
- 7: I have 2 numbers
- 8: I have 2 number
- 9: I have 2 numbe
-10: I have 2 numb
-11: I have 2 num
-12: I have 2 nu
-13: I have 2 n
-14: I have 2 
-15: I have 2
-16: I have 
-17: I have
-18: I hav
-19: I ha
-20: I h
-21: I 
-
-/(.*?)(\d+)/
-    I have 2 numbers: 53147
- 0: I have 2 numbers: 53147
- 1: I have 2 numbers: 5314
- 2: I have 2 numbers: 531
- 3: I have 2 numbers: 53
- 4: I have 2 numbers: 5
- 5: I have 2
-
-/(.*)(\d+)$/
-    I have 2 numbers: 53147
- 0: I have 2 numbers: 53147
-
-/(.*?)(\d+)$/
-    I have 2 numbers: 53147
- 0: I have 2 numbers: 53147
-
-/(.*)\b(\d+)$/
-    I have 2 numbers: 53147
- 0: I have 2 numbers: 53147
-
-/(.*\D)(\d+)$/
-    I have 2 numbers: 53147
- 0: I have 2 numbers: 53147
-
-/^\D*(?!123)/
-    ABC123
- 0: AB
- 1: A
- 2: 
-     
-/^(\D*)(?=\d)(?!123)/
-    ABC445
- 0: ABC
-    *** Failers
-No match
-    ABC123
-No match
-    
-/^[W-]46]/
-    W46]789 
- 0: W46]
-    -46]789
- 0: -46]
-    *** Failers
-No match
-    Wall
-No match
-    Zebra
-No match
-    42
-No match
-    [abcd] 
-No match
-    ]abcd[
-No match
-       
-/^[W-\]46]/
-    W46]789 
- 0: W
-    Wall
- 0: W
-    Zebra
- 0: Z
-    Xylophone  
- 0: X
-    42
- 0: 4
-    [abcd] 
- 0: [
-    ]abcd[
- 0: ]
-    \\backslash 
- 0: \
-    *** Failers
-No match
-    -46]789
-No match
-    well
-No match
-    
-/\d\d\/\d\d\/\d\d\d\d/
-    01/01/2000
- 0: 01/01/2000
-
-/word (?:[a-zA-Z0-9]+ ){0,10}otherword/
-  word cat dog elephant mussel cow horse canary baboon snake shark otherword
- 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
-  word cat dog elephant mussel cow horse canary baboon snake shark
-No match
-
-/word (?:[a-zA-Z0-9]+ ){0,300}otherword/
-  word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope
-No match
-
-/^(a){0,0}/
-    bcd
- 0: 
-    abc
- 0: 
-    aab     
- 0: 
-
-/^(a){0,1}/
-    bcd
- 0: 
-    abc
- 0: a
- 1: 
-    aab  
- 0: a
- 1: 
-
-/^(a){0,2}/
-    bcd
- 0: 
-    abc
- 0: a
- 1: 
-    aab  
- 0: aa
- 1: a
- 2: 
-
-/^(a){0,3}/
-    bcd
- 0: 
-    abc
- 0: a
- 1: 
-    aab
- 0: aa
- 1: a
- 2: 
-    aaa   
- 0: aaa
- 1: aa
- 2: a
- 3: 
-
-/^(a){0,}/
-    bcd
- 0: 
-    abc
- 0: a
- 1: 
-    aab
- 0: aa
- 1: a
- 2: 
-    aaa
- 0: aaa
- 1: aa
- 2: a
- 3: 
-    aaaaaaaa    
- 0: aaaaaaaa
- 1: aaaaaaa
- 2: aaaaaa
- 3: aaaaa
- 4: aaaa
- 5: aaa
- 6: aa
- 7: a
- 8: 
-
-/^(a){1,1}/
-    bcd
-No match
-    abc
- 0: a
-    aab  
- 0: a
-
-/^(a){1,2}/
-    bcd
-No match
-    abc
- 0: a
-    aab  
- 0: aa
- 1: a
-
-/^(a){1,3}/
-    bcd
-No match
-    abc
- 0: a
-    aab
- 0: aa
- 1: a
-    aaa   
- 0: aaa
- 1: aa
- 2: a
-
-/^(a){1,}/
-    bcd
-No match
-    abc
- 0: a
-    aab
- 0: aa
- 1: a
-    aaa
- 0: aaa
- 1: aa
- 2: a
-    aaaaaaaa    
- 0: aaaaaaaa
- 1: aaaaaaa
- 2: aaaaaa
- 3: aaaaa
- 4: aaaa
- 5: aaa
- 6: aa
- 7: a
-
-/.*\.gif/
-    borfle\nbib.gif\nno
- 0: bib.gif
-
-/.{0,}\.gif/
-    borfle\nbib.gif\nno
- 0: bib.gif
-
-/.*\.gif/m
-    borfle\nbib.gif\nno
- 0: bib.gif
-
-/.*\.gif/s
-    borfle\nbib.gif\nno
- 0: borfle\x0abib.gif
-
-/.*\.gif/ms
-    borfle\nbib.gif\nno
- 0: borfle\x0abib.gif
-    
-/.*$/
-    borfle\nbib.gif\nno
- 0: no
-
-/.*$/m
-    borfle\nbib.gif\nno
- 0: borfle
-
-/.*$/s
-    borfle\nbib.gif\nno
- 0: borfle\x0abib.gif\x0ano
-
-/.*$/ms
-    borfle\nbib.gif\nno
- 0: borfle\x0abib.gif\x0ano
- 1: borfle\x0abib.gif
- 2: borfle
-    
-/.*$/
-    borfle\nbib.gif\nno\n
- 0: no
-
-/.*$/m
-    borfle\nbib.gif\nno\n
- 0: borfle
-
-/.*$/s
-    borfle\nbib.gif\nno\n
- 0: borfle\x0abib.gif\x0ano\x0a
- 1: borfle\x0abib.gif\x0ano
-
-/.*$/ms
-    borfle\nbib.gif\nno\n
- 0: borfle\x0abib.gif\x0ano\x0a
- 1: borfle\x0abib.gif\x0ano
- 2: borfle\x0abib.gif
- 3: borfle
-    
-/(.*X|^B)/
-    abcde\n1234Xyz
- 0: 1234X
-    BarFoo 
- 0: B
-    *** Failers
-No match
-    abcde\nBar  
-No match
-
-/(.*X|^B)/m
-    abcde\n1234Xyz
- 0: 1234X
-    BarFoo 
- 0: B
-    abcde\nBar  
- 0: B
-
-/(.*X|^B)/s
-    abcde\n1234Xyz
- 0: abcde\x0a1234X
-    BarFoo 
- 0: B
-    *** Failers
-No match
-    abcde\nBar  
-No match
-
-/(.*X|^B)/ms
-    abcde\n1234Xyz
- 0: abcde\x0a1234X
-    BarFoo 
- 0: B
-    abcde\nBar  
- 0: B
-
-/(?s)(.*X|^B)/
-    abcde\n1234Xyz
- 0: abcde\x0a1234X
-    BarFoo 
- 0: B
-    *** Failers 
-No match
-    abcde\nBar  
-No match
-
-/(?s:.*X|^B)/
-    abcde\n1234Xyz
- 0: abcde\x0a1234X
-    BarFoo 
- 0: B
-    *** Failers 
-No match
-    abcde\nBar  
-No match
-
-/^.*B/
-    **** Failers
-No match
-    abc\nB
-No match
-     
-/(?s)^.*B/
-    abc\nB
- 0: abc\x0aB
-
-/(?m)^.*B/
-    abc\nB
- 0: B
-     
-/(?ms)^.*B/
-    abc\nB
- 0: abc\x0aB
-
-/(?ms)^B/
-    abc\nB
- 0: B
-
-/(?s)B$/
-    B\n
- 0: B
-
-/^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
-    123456654321
- 0: 123456654321
-  
-/^\d\d\d\d\d\d\d\d\d\d\d\d/
-    123456654321 
- 0: 123456654321
-
-/^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
-    123456654321
- 0: 123456654321
-  
-/^[abc]{12}/
-    abcabcabcabc
- 0: abcabcabcabc
-    
-/^[a-c]{12}/
-    abcabcabcabc
- 0: abcabcabcabc
-    
-/^(a|b|c){12}/
-    abcabcabcabc 
- 0: abcabcabcabc
-
-/^[abcdefghijklmnopqrstuvwxy0123456789]/
-    n
- 0: n
-    *** Failers 
-No match
-    z 
-No match
-
-/abcde{0,0}/
-    abcd
- 0: abcd
-    *** Failers
-No match
-    abce  
-No match
-
-/ab[cd]{0,0}e/
-    abe
- 0: abe
-    *** Failers
-No match
-    abcde 
-No match
-    
-/ab(c){0,0}d/
-    abd
- 0: abd
-    *** Failers
-No match
-    abcd   
-No match
-
-/a(b*)/
-    a
- 0: a
-    ab
- 0: ab
- 1: a
-    abbbb
- 0: abbbb
- 1: abbb
- 2: abb
- 3: ab
- 4: a
-    *** Failers
- 0: a
-    bbbbb    
-No match
-    
-/ab\d{0}e/
-    abe
- 0: abe
-    *** Failers
-No match
-    ab1e   
-No match
-    
-/"([^\\"]+|\\.)*"/
-    the \"quick\" brown fox
- 0: "quick"
-    \"the \\\"quick\\\" brown fox\" 
- 0: "the \"quick\" brown fox"
-
-/.*?/g+
-    abc
- 0: abc
- 0+ 
- 1: ab
- 2: a
- 3: 
- 0: 
- 0+ 
-  
-/\b/g+
-    abc 
- 0: 
- 0+ abc
- 0: 
- 0+ 
-
-/\b/+g
-    abc 
- 0: 
- 0+ abc
- 0: 
- 0+ 
-
-//g
-    abc
- 0: 
- 0: 
- 0: 
- 0: 
-
-/<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>/is
-  <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>
- 0: <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>
-
-/a[^a]b/
-    acb
- 0: acb
-    a\nb
- 0: a\x0ab
-    
-/a.b/
-    acb
- 0: acb
-    *** Failers 
-No match
-    a\nb   
-No match
-    
-/a[^a]b/s
-    acb
- 0: acb
-    a\nb  
- 0: a\x0ab
-    
-/a.b/s
-    acb
- 0: acb
-    a\nb  
- 0: a\x0ab
-
-/^(b+?|a){1,2}?c/
-    bac
- 0: bac
-    bbac
- 0: bbac
-    bbbac
- 0: bbbac
-    bbbbac
- 0: bbbbac
-    bbbbbac 
- 0: bbbbbac
-
-/^(b+|a){1,2}?c/
-    bac
- 0: bac
-    bbac
- 0: bbac
-    bbbac
- 0: bbbac
-    bbbbac
- 0: bbbbac
-    bbbbbac 
- 0: bbbbbac
-    
-/(?!\A)x/m
-    x\nb\n
-No match
-    a\bx\n  
- 0: x
-    
-/\x0{ab}/
-    \0{ab} 
- 0: \x00{ab}
-
-/(A|B)*?CD/
-    CD 
- 0: CD
-    
-/(A|B)*CD/
-    CD 
- 0: CD
-
-/(?<!bar)foo/
-    foo
- 0: foo
-    catfood
- 0: foo
-    arfootle
- 0: foo
-    rfoosh
- 0: foo
-    *** Failers
-No match
-    barfoo
-No match
-    towbarfoo
-No match
-
-/\w{3}(?<!bar)foo/
-    catfood
- 0: catfoo
-    *** Failers
-No match
-    foo
-No match
-    barfoo
-No match
-    towbarfoo
-No match
-
-/(?<=(foo)a)bar/
-    fooabar
- 0: bar
-    *** Failers
-No match
-    bar
-No match
-    foobbar
-No match
-      
-/\Aabc\z/m
-    abc
- 0: abc
-    *** Failers
-No match
-    abc\n   
-No match
-    qqq\nabc
-No match
-    abc\nzzz
-No match
-    qqq\nabc\nzzz
-No match
-
-"(?>.*/)foo"
-    /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
-No match
-
-"(?>.*/)foo"
-    /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
- 0: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
-
-/(?>(\.\d\d[1-9]?))\d+/
-    1.230003938
- 0: .230003938
- 1: .23000393
- 2: .2300039
- 3: .230003
- 4: .23000
- 5: .2300
- 6: .230
-    1.875000282
- 0: .875000282
- 1: .87500028
- 2: .8750002
- 3: .875000
- 4: .87500
- 5: .8750
-    *** Failers 
-No match
-    1.235 
-No match
-
-/^((?>\w+)|(?>\s+))*$/
-    now is the time for all good men to come to the aid of the party
- 0: now is the time for all good men to come to the aid of the party
-    *** Failers
-No match
-    this is not a line with only words and spaces!
-No match
-    
-/(\d+)(\w)/
-    12345a
- 0: 12345a
- 1: 12345
- 2: 1234
- 3: 123
- 4: 12
-    12345+ 
- 0: 12345
- 1: 1234
- 2: 123
- 3: 12
-
-/((?>\d+))(\w)/
-    12345a
- 0: 12345a
-    *** Failers
-No match
-    12345+ 
-No match
-
-/(?>a+)b/
-    aaab
- 0: aaab
-
-/((?>a+)b)/
-    aaab
- 0: aaab
-
-/(?>(a+))b/
-    aaab
- 0: aaab
-
-/(?>b)+/
-    aaabbbccc
- 0: bbb
- 1: bb
- 2: b
-
-/(?>a+|b+|c+)*c/
-    aaabbbbccccd
- 0: aaabbbbcccc
- 1: aaabbbbc
-    
-/(a+|b+|c+)*c/
-    aaabbbbccccd
- 0: aaabbbbcccc
- 1: aaabbbbccc
- 2: aaabbbbcc
- 3: aaabbbbc
-
-/((?>[^()]+)|\([^()]*\))+/
-    ((abc(ade)ufh()()x
- 0: abc(ade)ufh()()x
- 1: abc(ade)ufh()()
- 2: abc(ade)ufh()
- 3: abc(ade)ufh
- 4: abc(ade)
- 5: abc
-    
-/\(((?>[^()]+)|\([^()]+\))+\)/ 
-    (abc)
- 0: (abc)
-    (abc(def)xyz)
- 0: (abc(def)xyz)
-    *** Failers
-No match
-    ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   
-No match
-
-/a(?-i)b/i
-    ab
- 0: ab
-    Ab
- 0: Ab
-    *** Failers 
-No match
-    aB
-No match
-    AB
-No match
-        
-/(a (?x)b c)d e/
-    a bcd e
- 0: a bcd e
-    *** Failers
-No match
-    a b cd e
-No match
-    abcd e   
-No match
-    a bcde 
-No match
-/(a b(?x)c d (?-x)e f)/
-    a bcde f
- 0: a bcde f
-    *** Failers
-No match
-    abcdef  
-No match
-
-/(a(?i)b)c/
-    abc
- 0: abc
-    aBc
- 0: aBc
-    *** Failers
-No match
-    abC
-No match
-    aBC  
-No match
-    Abc
-No match
-    ABc
-No match
-    ABC
-No match
-    AbC
-No match
-    
-/a(?i:b)c/
-    abc
- 0: abc
-    aBc
- 0: aBc
-    *** Failers 
-No match
-    ABC
-No match
-    abC
-No match
-    aBC
-No match
-    
-/a(?i:b)*c/
-    aBc
- 0: aBc
-    aBBc
- 0: aBBc
-    *** Failers 
-No match
-    aBC
-No match
-    aBBC
-No match
-    
-/a(?=b(?i)c)\w\wd/
-    abcd
- 0: abcd
-    abCd
- 0: abCd
-    *** Failers
-No match
-    aBCd
-No match
-    abcD     
-No match
-    
-/(?s-i:more.*than).*million/i
-    more than million
- 0: more than million
-    more than MILLION
- 0: more than MILLION
-    more \n than Million 
- 0: more \x0a than Million
-    *** Failers
-No match
-    MORE THAN MILLION    
-No match
-    more \n than \n million 
-No match
-
-/(?:(?s-i)more.*than).*million/i
-    more than million
- 0: more than million
-    more than MILLION
- 0: more than MILLION
-    more \n than Million 
- 0: more \x0a than Million
-    *** Failers
-No match
-    MORE THAN MILLION    
-No match
-    more \n than \n million 
-No match
-    
-/(?>a(?i)b+)+c/ 
-    abc
- 0: abc
-    aBbc
- 0: aBbc
-    aBBc 
- 0: aBBc
-    *** Failers
-No match
-    Abc
-No match
-    abAb    
-No match
-    abbC 
-No match
-    
-/(?=a(?i)b)\w\wc/
-    abc
- 0: abc
-    aBc
- 0: aBc
-    *** Failers
-No match
-    Ab 
-No match
-    abC
-No match
-    aBC     
-No match
-    
-/(?<=a(?i)b)(\w\w)c/
-    abxxc
- 0: xxc
-    aBxxc
- 0: xxc
-    *** Failers
-No match
-    Abxxc
-No match
-    ABxxc
-No match
-    abxxC      
-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
-    
-/(?(?<=foo)bar|cat)/
-    foobar
- 0: bar
-    cat
- 0: cat
-    fcat
- 0: cat
-    focat   
- 0: cat
-    *** Failers
-No match
-    foocat  
-No match
-
-/(?(?<!foo)cat|bar)/
-    foobar
- 0: bar
-    cat
- 0: cat
-    fcat
- 0: cat
-    focat   
- 0: cat
-    *** Failers
-No match
-    foocat  
-No match
-
-/(?>a*)*/
-    a
- 0: a
- 1: 
-    aa
- 0: aa
- 1: 
-    aaaa
- 0: aaaa
- 1: 
-    
-/(abc|)+/
-    abc
- 0: abc
- 1: 
-    abcabc
- 0: abcabc
- 1: abc
- 2: 
-    abcabcabc
- 0: abcabcabc
- 1: abcabc
- 2: abc
- 3: 
-    xyz      
- 0: 
-
-/([a]*)*/
-    a
- 0: a
- 1: 
-    aaaaa 
- 0: aaaaa
- 1: aaaa
- 2: aaa
- 3: aa
- 4: a
- 5: 
-/([ab]*)*/
-    a
- 0: a
- 1: 
-    b
- 0: b
- 1: 
-    ababab
- 0: ababab
- 1: ababa
- 2: abab
- 3: aba
- 4: ab
- 5: a
- 6: 
-    aaaabcde
- 0: aaaab
- 1: aaaa
- 2: aaa
- 3: aa
- 4: a
- 5: 
-    bbbb    
- 0: bbbb
- 1: bbb
- 2: bb
- 3: b
- 4: 
-/([^a]*)*/
-    b
- 0: b
- 1: 
-    bbbb
- 0: bbbb
- 1: bbb
- 2: bb
- 3: b
- 4: 
-    aaa   
- 0: 
-/([^ab]*)*/
-    cccc
- 0: cccc
- 1: ccc
- 2: cc
- 3: c
- 4: 
-    abab  
- 0: 
-/([a]*?)*/
-    a
- 0: a
- 1: 
-    aaaa 
- 0: aaaa
- 1: aaa
- 2: aa
- 3: a
- 4: 
-/([ab]*?)*/
-    a
- 0: a
- 1: 
-    b
- 0: b
- 1: 
-    abab
- 0: abab
- 1: aba
- 2: ab
- 3: a
- 4: 
-    baba   
- 0: baba
- 1: bab
- 2: ba
- 3: b
- 4: 
-/([^a]*?)*/
-    b
- 0: b
- 1: 
-    bbbb
- 0: bbbb
- 1: bbb
- 2: bb
- 3: b
- 4: 
-    aaa   
- 0: 
-/([^ab]*?)*/
-    c
- 0: c
- 1: 
-    cccc
- 0: cccc
- 1: ccc
- 2: cc
- 3: c
- 4: 
-    baba   
- 0: 
-/(?>a*)*/
-    a
- 0: a
- 1: 
-    aaabcde 
- 0: aaa
- 1: 
-/((?>a*))*/
-    aaaaa
- 0: aaaaa
- 1: 
-    aabbaa 
- 0: aa
- 1: 
-/((?>a*?))*/
-    aaaaa
- 0: aaaaa
- 1: 
-    aabbaa 
- 0: aa
- 1: 
-
-/(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /x
-    12-sep-98
- 0: 12-sep-98
-    12-09-98
- 0: 12-09-98
-    *** Failers
-No match
-    sep-12-98
-No match
-        
-/(?i:saturday|sunday)/
-    saturday
- 0: saturday
-    sunday
- 0: sunday
-    Saturday
- 0: Saturday
-    Sunday
- 0: Sunday
-    SATURDAY
- 0: SATURDAY
-    SUNDAY
- 0: SUNDAY
-    SunDay
- 0: SunDay
-    
-/(a(?i)bc|BB)x/
-    abcx
- 0: abcx
-    aBCx
- 0: aBCx
-    bbx
- 0: bbx
-    BBx
- 0: BBx
-    *** Failers
-No match
-    abcX
-No match
-    aBCX
-No match
-    bbX
-No match
-    BBX               
-No match
-
-/^([ab](?i)[cd]|[ef])/
-    ac
- 0: ac
-    aC
- 0: aC
-    bD
- 0: bD
-    elephant
- 0: e
-    Europe 
- 0: E
-    frog
- 0: f
-    France
- 0: F
-    *** Failers
-No match
-    Africa     
-No match
-
-/^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
-    ab
- 0: ab
-    aBd
- 0: aBd
-    xy
- 0: xy
-    xY
- 0: xY
-    zebra
- 0: z
-    Zambesi
- 0: Z
-    *** Failers
-No match
-    aCD  
-No match
-    XY  
-No match
-
-/(?<=foo\n)^bar/m
-    foo\nbar
- 0: bar
-    *** Failers
-No match
-    bar
-No match
-    baz\nbar   
-No match
-
-/(?<=(?<!foo)bar)baz/
-    barbaz
- 0: baz
-    barbarbaz 
- 0: baz
-    koobarbaz 
- 0: baz
-    *** Failers
-No match
-    baz
-No match
-    foobarbaz 
-No match
-
-/The following tests are taken from the Perl 5.005 test suite; some of them/
-/are compatible with 5.004, but I'd rather not have to sort them out./
-No match
-
-/abc/
-    abc
- 0: abc
-    xabcy
- 0: abc
-    ababc
- 0: abc
-    *** Failers
-No match
-    xbc
-No match
-    axc
-No match
-    abx
-No match
-
-/ab*c/
-    abc
- 0: abc
-
-/ab*bc/
-    abc
- 0: abc
-    abbc
- 0: abbc
-    abbbbc
- 0: abbbbc
-
-/.{1}/
-    abbbbc
- 0: a
-
-/.{3,4}/
-    abbbbc
- 0: abbb
- 1: abb
-
-/ab{0,}bc/
-    abbbbc
- 0: abbbbc
-
-/ab+bc/
-    abbc
- 0: abbc
-    *** Failers
-No match
-    abc
-No match
-    abq
-No match
-
-/ab+bc/
-    abbbbc
- 0: abbbbc
-
-/ab{1,}bc/
-    abbbbc
- 0: abbbbc
-
-/ab{1,3}bc/
-    abbbbc
- 0: abbbbc
-
-/ab{3,4}bc/
-    abbbbc
- 0: abbbbc
-
-/ab{4,5}bc/
-    *** Failers
-No match
-    abq
-No match
-    abbbbc
-No match
-
-/ab?bc/
-    abbc
- 0: abbc
-    abc
- 0: abc
-
-/ab{0,1}bc/
-    abc
- 0: abc
-
-/ab?bc/
-
-/ab?c/
-    abc
- 0: abc
-
-/ab{0,1}c/
-    abc
- 0: abc
-
-/^abc$/
-    abc
- 0: abc
-    *** Failers
-No match
-    abbbbc
-No match
-    abcc
-No match
-
-/^abc/
-    abcc
- 0: abc
-
-/^abc$/
-
-/abc$/
-    aabc
- 0: abc
-    *** Failers
-No match
-    aabc
- 0: abc
-    aabcd
-No match
-
-/^/
-    abc
- 0: 
-
-/$/
-    abc
- 0: 
-
-/a.c/
-    abc
- 0: abc
-    axc
- 0: axc
-
-/a.*c/
-    axyzc
- 0: axyzc
-
-/a[bc]d/
-    abd
- 0: abd
-    *** Failers
-No match
-    axyzd
-No match
-    abc
-No match
-
-/a[b-d]e/
-    ace
- 0: ace
-
-/a[b-d]/
-    aac
- 0: ac
-
-/a[-b]/
-    a-
- 0: a-
-
-/a[b-]/
-    a-
- 0: a-
-
-/a]/
-    a]
- 0: a]
-
-/a[]]b/
-    a]b
- 0: a]b
-
-/a[^bc]d/
-    aed
- 0: aed
-    *** Failers
-No match
-    abd
-No match
-    abd
-No match
-
-/a[^-b]c/
-    adc
- 0: adc
-
-/a[^]b]c/
-    adc
- 0: adc
-    *** Failers
-No match
-    a-c
- 0: a-c
-    a]c
-No match
-
-/\ba\b/
-    a-
- 0: a
-    -a
- 0: a
-    -a-
- 0: a
-
-/\by\b/
-    *** Failers
-No match
-    xy
-No match
-    yz
-No match
-    xyz
-No match
-
-/\Ba\B/
-    *** Failers
- 0: a
-    a-
-No match
-    -a
-No match
-    -a-
-No match
-
-/\By\b/
-    xy
- 0: y
-
-/\by\B/
-    yz
- 0: y
-
-/\By\B/
-    xyz
- 0: y
-
-/\w/
-    a
- 0: a
-
-/\W/
-    -
- 0: -
-    *** Failers
- 0: *
-    -
- 0: -
-    a
-No match
-
-/a\sb/
-    a b
- 0: a b
-
-/a\Sb/
-    a-b
- 0: a-b
-    *** Failers
-No match
-    a-b
- 0: a-b
-    a b
-No match
-
-/\d/
-    1
- 0: 1
-
-/\D/
-    -
- 0: -
-    *** Failers
- 0: *
-    -
- 0: -
-    1
-No match
-
-/[\w]/
-    a
- 0: a
-
-/[\W]/
-    -
- 0: -
-    *** Failers
- 0: *
-    -
- 0: -
-    a
-No match
-
-/a[\s]b/
-    a b
- 0: a b
-
-/a[\S]b/
-    a-b
- 0: a-b
-    *** Failers
-No match
-    a-b
- 0: a-b
-    a b
-No match
-
-/[\d]/
-    1
- 0: 1
-
-/[\D]/
-    -
- 0: -
-    *** Failers
- 0: *
-    -
- 0: -
-    1
-No match
-
-/ab|cd/
-    abc
- 0: ab
-    abcd
- 0: ab
-
-/()ef/
-    def
- 0: ef
-
-/$b/
-
-/a\(b/
-    a(b
- 0: a(b
-
-/a\(*b/
-    ab
- 0: ab
-    a((b
- 0: a((b
-
-/a\\b/
-    a\b
-No match
-
-/((a))/
-    abc
- 0: a
-
-/(a)b(c)/
-    abc
- 0: abc
-
-/a+b+c/
-    aabbabc
- 0: abc
-
-/a{1,}b{1,}c/
-    aabbabc
- 0: abc
-
-/a.+?c/
-    abcabc
- 0: abcabc
- 1: abc
-
-/(a+|b)*/
-    ab
- 0: ab
- 1: a
- 2: 
-
-/(a+|b){0,}/
-    ab
- 0: ab
- 1: a
- 2: 
-
-/(a+|b)+/
-    ab
- 0: ab
- 1: a
-
-/(a+|b){1,}/
-    ab
- 0: ab
- 1: a
-
-/(a+|b)?/
-    ab
- 0: a
- 1: 
-
-/(a+|b){0,1}/
-    ab
- 0: a
- 1: 
-
-/[^ab]*/
-    cde
- 0: cde
- 1: cd
- 2: c
- 3: 
-
-/abc/
-    *** Failers
-No match
-    b
-No match
-    
-
-/a*/
-    
-
-/([abc])*d/
-    abbbcd
- 0: abbbcd
-
-/([abc])*bcd/
-    abcd
- 0: abcd
-
-/a|b|c|d|e/
-    e
- 0: e
-
-/(a|b|c|d|e)f/
-    ef
- 0: ef
-
-/abcd*efg/
-    abcdefg
- 0: abcdefg
-
-/ab*/
-    xabyabbbz
- 0: ab
- 1: a
-    xayabbbz
- 0: a
-
-/(ab|cd)e/
-    abcde
- 0: cde
-
-/[abhgefdc]ij/
-    hij
- 0: hij
-
-/^(ab|cd)e/
-
-/(abc|)ef/
-    abcdef
- 0: ef
-
-/(a|b)c*d/
-    abcd
- 0: bcd
-
-/(ab|ab*)bc/
-    abc
- 0: abc
-
-/a([bc]*)c*/
-    abc
- 0: abc
- 1: ab
- 2: a
-
-/a([bc]*)(c*d)/
-    abcd
- 0: abcd
-
-/a([bc]+)(c*d)/
-    abcd
- 0: abcd
-
-/a([bc]*)(c+d)/
-    abcd
- 0: abcd
-
-/a[bcd]*dcdcde/
-    adcdcde
- 0: adcdcde
-
-/a[bcd]+dcdcde/
-    *** Failers
-No match
-    abcde
-No match
-    adcdcde
-No match
-
-/(ab|a)b*c/
-    abc
- 0: abc
-
-/((a)(b)c)(d)/
-    abcd
- 0: abcd
-
-/[a-zA-Z_][a-zA-Z0-9_]*/
-    alpha
- 0: alpha
- 1: alph
- 2: alp
- 3: al
- 4: a
-
-/^a(bc+|b[eh])g|.h$/
-    abh
- 0: bh
-
-/(bc+d$|ef*g.|h?i(j|k))/
-    effgz
- 0: effgz
-    ij
- 0: ij
-    reffgz
- 0: effgz
-    *** Failers
-No match
-    effg
-No match
-    bcdd
-No match
-
-/((((((((((a))))))))))/
-    a
- 0: a
-
-/(((((((((a)))))))))/
-    a
- 0: a
-
-/multiple words of text/
-    *** Failers
-No match
-    aa
-No match
-    uh-uh
-No match
-
-/multiple words/
-    multiple words, yeah
- 0: multiple words
-
-/(.*)c(.*)/
-    abcde
- 0: abcde
- 1: abcd
- 2: abc
-
-/\((.*), (.*)\)/
-    (a, b)
- 0: (a, b)
-
-/[k]/
-
-/abcd/
-    abcd
- 0: abcd
-
-/a(bc)d/
-    abcd
- 0: abcd
-
-/a[-]?c/
-    ac
- 0: ac
-
-/abc/i
-    ABC
- 0: ABC
-    XABCY
- 0: ABC
-    ABABC
- 0: ABC
-    *** Failers
-No match
-    aaxabxbaxbbx
-No match
-    XBC
-No match
-    AXC
-No match
-    ABX
-No match
-
-/ab*c/i
-    ABC
- 0: ABC
-
-/ab*bc/i
-    ABC
- 0: ABC
-    ABBC
- 0: ABBC
-
-/ab*?bc/i
-    ABBBBC
- 0: ABBBBC
-
-/ab{0,}?bc/i
-    ABBBBC
- 0: ABBBBC
-
-/ab+?bc/i
-    ABBC
- 0: ABBC
-
-/ab+bc/i
-    *** Failers
-No match
-    ABC
-No match
-    ABQ
-No match
-
-/ab{1,}bc/i
-
-/ab+bc/i
-    ABBBBC
- 0: ABBBBC
-
-/ab{1,}?bc/i
-    ABBBBC
- 0: ABBBBC
-
-/ab{1,3}?bc/i
-    ABBBBC
- 0: ABBBBC
-
-/ab{3,4}?bc/i
-    ABBBBC
- 0: ABBBBC
-
-/ab{4,5}?bc/i
-    *** Failers
-No match
-    ABQ
-No match
-    ABBBBC
-No match
-
-/ab??bc/i
-    ABBC
- 0: ABBC
-    ABC
- 0: ABC
-
-/ab{0,1}?bc/i
-    ABC
- 0: ABC
-
-/ab??bc/i
-
-/ab??c/i
-    ABC
- 0: ABC
-
-/ab{0,1}?c/i
-    ABC
- 0: ABC
-
-/^abc$/i
-    ABC
- 0: ABC
-    *** Failers
-No match
-    ABBBBC
-No match
-    ABCC
-No match
-
-/^abc/i
-    ABCC
- 0: ABC
-
-/^abc$/i
-
-/abc$/i
-    AABC
- 0: ABC
-
-/^/i
-    ABC
- 0: 
-
-/$/i
-    ABC
- 0: 
-
-/a.c/i
-    ABC
- 0: ABC
-    AXC
- 0: AXC
-
-/a.*?c/i
-    AXYZC
- 0: AXYZC
-
-/a.*c/i
-    *** Failers
-No match
-    AABC
- 0: AABC
-    AXYZD
-No match
-
-/a[bc]d/i
-    ABD
- 0: ABD
-
-/a[b-d]e/i
-    ACE
- 0: ACE
-    *** Failers
-No match
-    ABC
-No match
-    ABD
-No match
-
-/a[b-d]/i
-    AAC
- 0: AC
-
-/a[-b]/i
-    A-
- 0: A-
-
-/a[b-]/i
-    A-
- 0: A-
-
-/a]/i
-    A]
- 0: A]
-
-/a[]]b/i
-    A]B
- 0: A]B
-
-/a[^bc]d/i
-    AED
- 0: AED
-
-/a[^-b]c/i
-    ADC
- 0: ADC
-    *** Failers
-No match
-    ABD
-No match
-    A-C
-No match
-
-/a[^]b]c/i
-    ADC
- 0: ADC
-
-/ab|cd/i
-    ABC
- 0: AB
-    ABCD
- 0: AB
-
-/()ef/i
-    DEF
- 0: EF
-
-/$b/i
-    *** Failers
-No match
-    A]C
-No match
-    B
-No match
-
-/a\(b/i
-    A(B
- 0: A(B
-
-/a\(*b/i
-    AB
- 0: AB
-    A((B
- 0: A((B
-
-/a\\b/i
-    A\B
-No match
-
-/((a))/i
-    ABC
- 0: A
-
-/(a)b(c)/i
-    ABC
- 0: ABC
-
-/a+b+c/i
-    AABBABC
- 0: ABC
-
-/a{1,}b{1,}c/i
-    AABBABC
- 0: ABC
-
-/a.+?c/i
-    ABCABC
- 0: ABCABC
- 1: ABC
-
-/a.*?c/i
-    ABCABC
- 0: ABCABC
- 1: ABC
-
-/a.{0,5}?c/i
-    ABCABC
- 0: ABCABC
- 1: ABC
-
-/(a+|b)*/i
-    AB
- 0: AB
- 1: A
- 2: 
-
-/(a+|b){0,}/i
-    AB
- 0: AB
- 1: A
- 2: 
-
-/(a+|b)+/i
-    AB
- 0: AB
- 1: A
-
-/(a+|b){1,}/i
-    AB
- 0: AB
- 1: A
-
-/(a+|b)?/i
-    AB
- 0: A
- 1: 
-
-/(a+|b){0,1}/i
-    AB
- 0: A
- 1: 
-
-/(a+|b){0,1}?/i
-    AB
- 0: A
- 1: 
-
-/[^ab]*/i
-    CDE
- 0: CDE
- 1: CD
- 2: C
- 3: 
-
-/abc/i
-
-/a*/i
-    
-
-/([abc])*d/i
-    ABBBCD
- 0: ABBBCD
-
-/([abc])*bcd/i
-    ABCD
- 0: ABCD
-
-/a|b|c|d|e/i
-    E
- 0: E
-
-/(a|b|c|d|e)f/i
-    EF
- 0: EF
-
-/abcd*efg/i
-    ABCDEFG
- 0: ABCDEFG
-
-/ab*/i
-    XABYABBBZ
- 0: AB
- 1: A
-    XAYABBBZ
- 0: A
-
-/(ab|cd)e/i
-    ABCDE
- 0: CDE
-
-/[abhgefdc]ij/i
-    HIJ
- 0: HIJ
-
-/^(ab|cd)e/i
-    ABCDE
-No match
-
-/(abc|)ef/i
-    ABCDEF
- 0: EF
-
-/(a|b)c*d/i
-    ABCD
- 0: BCD
-
-/(ab|ab*)bc/i
-    ABC
- 0: ABC
-
-/a([bc]*)c*/i
-    ABC
- 0: ABC
- 1: AB
- 2: A
-
-/a([bc]*)(c*d)/i
-    ABCD
- 0: ABCD
-
-/a([bc]+)(c*d)/i
-    ABCD
- 0: ABCD
-
-/a([bc]*)(c+d)/i
-    ABCD
- 0: ABCD
-
-/a[bcd]*dcdcde/i
-    ADCDCDE
- 0: ADCDCDE
-
-/a[bcd]+dcdcde/i
-
-/(ab|a)b*c/i
-    ABC
- 0: ABC
-
-/((a)(b)c)(d)/i
-    ABCD
- 0: ABCD
-
-/[a-zA-Z_][a-zA-Z0-9_]*/i
-    ALPHA
- 0: ALPHA
- 1: ALPH
- 2: ALP
- 3: AL
- 4: A
-
-/^a(bc+|b[eh])g|.h$/i
-    ABH
- 0: BH
-
-/(bc+d$|ef*g.|h?i(j|k))/i
-    EFFGZ
- 0: EFFGZ
-    IJ
- 0: IJ
-    REFFGZ
- 0: EFFGZ
-    *** Failers
-No match
-    ADCDCDE
-No match
-    EFFG
-No match
-    BCDD
-No match
-
-/((((((((((a))))))))))/i
-    A
- 0: A
-
-/(((((((((a)))))))))/i
-    A
- 0: A
-
-/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
-    A
- 0: A
-
-/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
-    C
- 0: C
-
-/multiple words of text/i
-    *** Failers
-No match
-    AA
-No match
-    UH-UH
-No match
-
-/multiple words/i
-    MULTIPLE WORDS, YEAH
- 0: MULTIPLE WORDS
-
-/(.*)c(.*)/i
-    ABCDE
- 0: ABCDE
- 1: ABCD
- 2: ABC
-
-/\((.*), (.*)\)/i
-    (A, B)
- 0: (A, B)
-
-/[k]/i
-
-/abcd/i
-    ABCD
- 0: ABCD
-
-/a(bc)d/i
-    ABCD
- 0: ABCD
-
-/a[-]?c/i
-    AC
- 0: AC
-
-/a(?!b)./
-    abad
- 0: ad
-
-/a(?=d)./
-    abad
- 0: ad
-
-/a(?=c|d)./
-    abad
- 0: ad
-
-/a(?:b|c|d)(.)/
-    ace
- 0: ace
-
-/a(?:b|c|d)*(.)/
-    ace
- 0: ace
- 1: ac
-
-/a(?:b|c|d)+?(.)/
-    ace
- 0: ace
-    acdbcdbe
- 0: acdbcdbe
- 1: acdbcdb
- 2: acdbcd
- 3: acdbc
- 4: acdb
- 5: acd
-
-/a(?:b|c|d)+(.)/
-    acdbcdbe
- 0: acdbcdbe
- 1: acdbcdb
- 2: acdbcd
- 3: acdbc
- 4: acdb
- 5: acd
-
-/a(?:b|c|d){2}(.)/
-    acdbcdbe
- 0: acdb
-
-/a(?:b|c|d){4,5}(.)/
-    acdbcdbe
- 0: acdbcdb
- 1: acdbcd
-
-/a(?:b|c|d){4,5}?(.)/
-    acdbcdbe
- 0: acdbcdb
- 1: acdbcd
-
-/((foo)|(bar))*/
-    foobar
- 0: foobar
- 1: foo
- 2: 
-
-/a(?:b|c|d){6,7}(.)/
-    acdbcdbe
- 0: acdbcdbe
-
-/a(?:b|c|d){6,7}?(.)/
-    acdbcdbe
- 0: acdbcdbe
-
-/a(?:b|c|d){5,6}(.)/
-    acdbcdbe
- 0: acdbcdbe
- 1: acdbcdb
-
-/a(?:b|c|d){5,6}?(.)/
-    acdbcdbe
- 0: acdbcdbe
- 1: acdbcdb
-
-/a(?:b|c|d){5,7}(.)/
-    acdbcdbe
- 0: acdbcdbe
- 1: acdbcdb
-
-/a(?:b|c|d){5,7}?(.)/
-    acdbcdbe
- 0: acdbcdbe
- 1: acdbcdb
-
-/a(?:b|(c|e){1,2}?|d)+?(.)/
-    ace
- 0: ace
-
-/^(.+)?B/
-    AB
- 0: AB
-
-/^([^a-z])|(\^)$/
-    .
- 0: .
-
-/^[<>]&/
-    <&OUT
- 0: <&
-
-/(?:(f)(o)(o)|(b)(a)(r))*/
-    foobar
- 0: foobar
- 1: foo
- 2: 
-
-/(?<=a)b/
-    ab
- 0: b
-    *** Failers
-No match
-    cb
-No match
-    b
-No match
-
-/(?<!c)b/
-    ab
- 0: b
-    b
- 0: b
-    b
- 0: b
-
-/(?:..)*a/
-    aba
- 0: aba
- 1: a
-
-/(?:..)*?a/
-    aba
- 0: aba
- 1: a
-
-/^(){3,5}/
-    abc
- 0: 
-
-/^(a+)*ax/
-    aax
- 0: aax
-
-/^((a|b)+)*ax/
-    aax
- 0: aax
-
-/^((a|bc)+)*ax/
-    aax
- 0: aax
-
-/(a|x)*ab/
-    cab
- 0: ab
-
-/(a)*ab/
-    cab
- 0: ab
-
-/(?:(?i)a)b/
-    ab
- 0: ab
-
-/((?i)a)b/
-    ab
- 0: ab
-
-/(?:(?i)a)b/
-    Ab
- 0: Ab
-
-/((?i)a)b/
-    Ab
- 0: Ab
-
-/(?:(?i)a)b/
-    *** Failers
-No match
-    cb
-No match
-    aB
-No match
-
-/((?i)a)b/
-
-/(?i:a)b/
-    ab
- 0: ab
-
-/((?i:a))b/
-    ab
- 0: ab
-
-/(?i:a)b/
-    Ab
- 0: Ab
-
-/((?i:a))b/
-    Ab
- 0: Ab
-
-/(?i:a)b/
-    *** Failers
-No match
-    aB
-No match
-    aB
-No match
-
-/((?i:a))b/
-
-/(?:(?-i)a)b/i
-    ab
- 0: ab
-
-/((?-i)a)b/i
-    ab
- 0: ab
-
-/(?:(?-i)a)b/i
-    aB
- 0: aB
-
-/((?-i)a)b/i
-    aB
- 0: aB
-
-/(?:(?-i)a)b/i
-    *** Failers
-No match
-    aB
- 0: aB
-    Ab
-No match
-
-/((?-i)a)b/i
-
-/(?:(?-i)a)b/i
-    aB
- 0: aB
-
-/((?-i)a)b/i
-    aB
- 0: aB
-
-/(?:(?-i)a)b/i
-    *** Failers
-No match
-    Ab
-No match
-    AB
-No match
-
-/((?-i)a)b/i
-
-/(?-i:a)b/i
-    ab
- 0: ab
-
-/((?-i:a))b/i
-    ab
- 0: ab
-
-/(?-i:a)b/i
-    aB
- 0: aB
-
-/((?-i:a))b/i
-    aB
- 0: aB
-
-/(?-i:a)b/i
-    *** Failers
-No match
-    AB
-No match
-    Ab
-No match
-
-/((?-i:a))b/i
-
-/(?-i:a)b/i
-    aB
- 0: aB
-
-/((?-i:a))b/i
-    aB
- 0: aB
-
-/(?-i:a)b/i
-    *** Failers
-No match
-    Ab
-No match
-    AB
-No match
-
-/((?-i:a))b/i
-
-/((?-i:a.))b/i
-    *** Failers
-No match
-    AB
-No match
-    a\nB
-No match
-
-/((?s-i:a.))b/i
-    a\nB
- 0: a\x0aB
-
-/(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
-    cabbbb
- 0: cabbbb
-
-/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
-    caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
- 0: caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
-
-/foo\w*\d{4}baz/
-    foobar1234baz
- 0: foobar1234baz
-
-/x(~~)*(?:(?:F)?)?/
-    x~~
- 0: x~~
- 1: x
-
-/^a(?#xxx){3}c/
-    aaac
- 0: aaac
-
-/^a (?#xxx) (?#yyy) {3}c/x
-    aaac
- 0: aaac
-
-/(?<![cd])b/
-    *** Failers
-No match
-    B\nB
-No match
-    dbcb
-No match
-
-/(?<![cd])[ab]/
-    dbaacb
- 0: a
-
-/(?<!(c|d))b/
-
-/(?<!(c|d))[ab]/
-    dbaacb
- 0: a
-
-/(?<!cd)[ab]/
-    cdaccb
- 0: b
-
-/^(?:a?b?)*$/
-    *** Failers
-No match
-    dbcb
-No match
-    a--
-No match
-
-/((?s)^a(.))((?m)^b$)/
-    a\nb\nc\n
- 0: a\x0ab
-
-/((?m)^b$)/
-    a\nb\nc\n
- 0: b
-
-/(?m)^b/
-    a\nb\n
- 0: b
-
-/(?m)^(b)/
-    a\nb\n
- 0: b
-
-/((?m)^b)/
-    a\nb\n
- 0: b
-
-/\n((?m)^b)/
-    a\nb\n
- 0: \x0ab
-
-/((?s).)c(?!.)/
-    a\nb\nc\n
- 0: \x0ac
-    a\nb\nc\n
- 0: \x0ac
-
-/((?s)b.)c(?!.)/
-    a\nb\nc\n
- 0: b\x0ac
-    a\nb\nc\n
- 0: b\x0ac
-
-/^b/
-
-/()^b/
-    *** Failers
-No match
-    a\nb\nc\n
-No match
-    a\nb\nc\n
-No match
-
-/((?m)^b)/
-    a\nb\nc\n
- 0: b
-
-/(?(?!a)a|b)/
-
-/(?(?!a)b|a)/
-    a
- 0: a
-
-/(?(?=a)b|a)/
-    *** Failers
-No match
-    a
-No match
-    a
-No match
-
-/(?(?=a)a|b)/
-    a
- 0: a
-
-/(\w+:)+/
-    one:
- 0: one:
-
-/$(?<=^(a))/
-    a
- 0: 
-
-/([\w:]+::)?(\w+)$/
-    abcd
- 0: abcd
-    xy:z:::abcd
- 0: xy:z:::abcd
-
-/^[^bcd]*(c+)/
-    aexycd
- 0: aexyc
-
-/(a*)b+/
-    caab
- 0: aab
-
-/([\w:]+::)?(\w+)$/
-    abcd
- 0: abcd
-    xy:z:::abcd
- 0: xy:z:::abcd
-    *** Failers
- 0: Failers
-    abcd:
-No match
-    abcd:
-No match
-
-/^[^bcd]*(c+)/
-    aexycd
- 0: aexyc
-
-/(>a+)ab/
-
-/(?>a+)b/
-    aaab
- 0: aaab
-
-/([[:]+)/
-    a:[b]:
- 0: :[
- 1: :
-
-/([[=]+)/
-    a=[b]=
- 0: =[
- 1: =
-
-/([[.]+)/
-    a.[b].
- 0: .[
- 1: .
-
-/((?>a+)b)/
-    aaab
- 0: aaab
-
-/(?>(a+))b/
-    aaab
- 0: aaab
-
-/((?>[^()]+)|\([^()]*\))+/
-    ((abc(ade)ufh()()x
- 0: abc(ade)ufh()()x
- 1: abc(ade)ufh()()
- 2: abc(ade)ufh()
- 3: abc(ade)ufh
- 4: abc(ade)
- 5: abc
-
-/a\Z/
-    *** Failers
-No match
-    aaab
-No match
-    a\nb\n
-No match
-
-/b\Z/
-    a\nb\n
- 0: b
-
-/b\z/
-
-/b\Z/
-    a\nb
- 0: b
-
-/b\z/
-    a\nb
- 0: b
-    *** Failers
-No match
-    
-/(?>.*)(?<=(abcd|wxyz))/
-    alphabetabcd
- 0: alphabetabcd
-    endingwxyz
- 0: endingwxyz
-    *** Failers
-No match
-    a rather long string that doesn't end with one of them
-No match
-
-/word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
-    word cat dog elephant mussel cow horse canary baboon snake shark otherword
- 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
-    word cat dog elephant mussel cow horse canary baboon snake shark
-No match
-  
-/word (?>[a-zA-Z0-9]+ ){0,30}otherword/
-    word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope
-No match
-
-/(?<=\d{3}(?!999))foo/
-    999foo
- 0: foo
-    123999foo 
- 0: foo
-    *** Failers
-No match
-    123abcfoo
-No match
-    
-/(?<=(?!...999)\d{3})foo/
-    999foo
- 0: foo
-    123999foo 
- 0: foo
-    *** Failers
-No match
-    123abcfoo
-No match
-
-/(?<=\d{3}(?!999)...)foo/
-    123abcfoo
- 0: foo
-    123456foo 
- 0: foo
-    *** Failers
-No match
-    123999foo  
-No match
-    
-/(?<=\d{3}...)(?<!999)foo/
-    123abcfoo   
- 0: foo
-    123456foo 
- 0: foo
-    *** Failers
-No match
-    123999foo  
-No match
-
-/((Z)+|A)*/
-    ZABCDEFG
- 0: ZA
- 1: Z
- 2: 
-
-/(Z()|A)*/
-    ZABCDEFG
- 0: ZA
- 1: Z
- 2: 
-
-/(Z(())|A)*/
-    ZABCDEFG
- 0: ZA
- 1: Z
- 2: 
-
-/((?>Z)+|A)*/
-    ZABCDEFG
- 0: ZA
- 1: Z
- 2: 
-
-/((?>)+|A)*/
-    ZABCDEFG
- 0: 
-
-/a*/g
-    abbab
- 0: a
- 1: 
- 0: 
- 0: 
- 0: a
- 1: 
- 0: 
- 0: 
-
-/^[a-\d]/
-    abcde
- 0: a
-    -things
- 0: -
-    0digit
- 0: 0
-    *** Failers
-No match
-    bcdef    
-No match
-
-/^[\d-a]/
-    abcde
- 0: a
-    -things
- 0: -
-    0digit
- 0: 0
-    *** Failers
-No match
-    bcdef    
-No match
-    
-/[[:space:]]+/
-    > \x09\x0a\x0c\x0d\x0b<
- 0:  \x09\x0a\x0c\x0d\x0b
- 1:  \x09\x0a\x0c\x0d
- 2:  \x09\x0a\x0c
- 3:  \x09\x0a
- 4:  \x09
- 5:  
-     
-/[[:blank:]]+/
-    > \x09\x0a\x0c\x0d\x0b<
- 0:  \x09
- 1:  
-     
-/[\s]+/
-    > \x09\x0a\x0c\x0d\x0b<
- 0:  \x09\x0a\x0c\x0d
- 1:  \x09\x0a\x0c
- 2:  \x09\x0a
- 3:  \x09
- 4:  
-     
-/\s+/
-    > \x09\x0a\x0c\x0d\x0b<
- 0:  \x09\x0a\x0c\x0d
- 1:  \x09\x0a\x0c
- 2:  \x09\x0a
- 3:  \x09
- 4:  
-     
-/a\vb/x
-    ab
-No match
-
-/(?!\A)x/m
-  a\nxb\n
- 0: x
-
-/(?!^)x/m
-  a\nxb\n
-No match
-
-/abc\Qabc\Eabc/
-    abcabcabc
- 0: abcabcabc
-    
-/abc\Q(*+|\Eabc/
-    abc(*+|abc 
- 0: abc(*+|abc
-
-/   abc\Q abc\Eabc/x
-    abc abcabc
- 0: abc abcabc
-    *** Failers
-No match
-    abcabcabc  
-No match
-    
-/abc#comment
-    \Q#not comment
-    literal\E/x
-    abc#not comment\n    literal     
- 0: abc#not comment\x0a    literal
-
-/abc#comment
-    \Q#not comment
-    literal/x
-    abc#not comment\n    literal     
- 0: abc#not comment\x0a    literal
-
-/abc#comment
-    \Q#not comment
-    literal\E #more comment
-    /x
-    abc#not comment\n    literal     
- 0: abc#not comment\x0a    literal
-
-/abc#comment
-    \Q#not comment
-    literal\E #more comment/x
-    abc#not comment\n    literal     
- 0: abc#not comment\x0a    literal
-
-/\Qabc\$xyz\E/
-    abc\\\$xyz
- 0: abc\$xyz
-
-/\Qabc\E\$\Qxyz\E/
-    abc\$xyz
- 0: abc$xyz
-
-/\Gabc/
-    abc
- 0: abc
-    *** Failers
-No match
-    xyzabc  
-No match
-
-/\Gabc./g
-    abc1abc2xyzabc3
- 0: abc1
- 0: abc2
-
-/abc./g
-    abc1abc2xyzabc3 
- 0: abc1
- 0: abc2
- 0: abc3
-
-/a(?x: b c )d/
-    XabcdY
- 0: abcd
-    *** Failers 
-No match
-    Xa b c d Y 
-No match
-
-/((?x)x y z | a b c)/
-    XabcY
- 0: abc
-    AxyzB 
- 0: xyz
-
-/(?i)AB(?-i)C/
-    XabCY
- 0: abC
-    *** Failers
-No match
-    XabcY  
-No match
-
-/((?i)AB(?-i)C|D)E/
-    abCE
- 0: abCE
-    DE
- 0: DE
-    *** Failers
-No match
-    abcE
-No match
-    abCe  
-No match
-    dE
-No match
-    De    
-No match
-
-/[z\Qa-d]\E]/
-    z
- 0: z
-    a
- 0: a
-    -
- 0: -
-    d
- 0: d
-    ] 
- 0: ]
-    *** Failers
- 0: a
-    b     
-No match
-
-/[\z\C]/
-    z
- 0: z
-    C 
- 0: C
-    
-/\M/
-    M 
- 0: M
-    
-/(a+)*b/
-    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
-No match
-    
-/(?i)reg(?:ul(?:[aä]|ae)r|ex)/
-    REGular
- 0: REGular
-    regulaer
- 0: regulaer
-    Regex  
- 0: Regex
-    regulär 
- 0: regul\xe4r
-
-/Åæåä[à-ÿÀ-ß]+/
-    Ã…æåäà
- 0: \xc5\xe6\xe5\xe4\xe0
-    Ã…æåäÿ
- 0: \xc5\xe6\xe5\xe4\xff
-    Ã…æåäÀ
- 0: \xc5\xe6\xe5\xe4\xc0
-    Ã…æåäß
- 0: \xc5\xe6\xe5\xe4\xdf
-
-/(?<=Z)X./
-    \x84XAZXB
- 0: XB
-
-/^(?(2)a|(1)(2))+$/
-    123a
-Error -17
-
-/(?<=a|bbbb)c/
-    ac
- 0: c
-    bbbbc
- 0: c
-
-/abc/>testsavedregex
-Compiled regex written to testsavedregex
-<testsavedregex
-Compiled regex loaded from testsavedregex
-No study data
-    abc
- 0: abc
-    *** Failers
-No match
-    bca
-No match
-    
-/abc/F>testsavedregex
-Compiled regex written to testsavedregex
-<testsavedregex
-Compiled regex (byte-inverted) loaded from testsavedregex
-No study data
-    abc
- 0: abc
-    *** Failers
-No match
-    bca
-No match
-
-/(a|b)/S>testsavedregex
-Compiled regex written to testsavedregex
-Study data written to testsavedregex
-<testsavedregex
-Compiled regex loaded from testsavedregex
-Study data loaded from testsavedregex
-    abc
- 0: a
-    *** Failers
- 0: a
-    def  
-No match
-    
-/(a|b)/SF>testsavedregex
-Compiled regex written to testsavedregex
-Study data written to testsavedregex
-<testsavedregex
-Compiled regex (byte-inverted) loaded from testsavedregex
-Study data loaded from testsavedregex
-    abc
- 0: a
-    *** Failers
- 0: a
-    def  
-No match
-    
-/line\nbreak/
-    this is a line\nbreak
- 0: line\x0abreak
-    line one\nthis is a line\nbreak in the second line 
- 0: line\x0abreak
-
-/line\nbreak/f
-    this is a line\nbreak
- 0: line\x0abreak
-    ** Failers 
-No match
-    line one\nthis is a line\nbreak in the second line 
-No match
-
-/line\nbreak/mf
-    this is a line\nbreak
- 0: line\x0abreak
-    ** Failers 
-No match
-    line one\nthis is a line\nbreak in the second line 
-No match
-
-/1234/
-    123\P
-Partial match: 123
-    a4\P\R
-No match
-
-/1234/
-    123\P
-Partial match: 123
-    4\P\R
- 0: 4
-
-/^/mg
-    a\nb\nc\n
- 0: 
- 0: 
- 0: 
-    \ 
- 0: 
-    
-/(?<=C\n)^/mg
-    A\nC\nC\n 
- 0: 
-
-/(?s)A?B/
-    AB
- 0: AB
-    aB  
- 0: B
-
-/(?s)A*B/
-    AB
- 0: AB
-    aB  
- 0: B
-
-/(?m)A?B/
-    AB
- 0: AB
-    aB  
- 0: B
-
-/(?m)A*B/
-    AB
- 0: AB
-    aB  
- 0: B
-
-/Content-Type\x3A[^\r\n]{6,}/
-    Content-Type:xxxxxyyy 
- 0: Content-Type:xxxxxyyy
- 1: Content-Type:xxxxxyy
- 2: Content-Type:xxxxxy
-
-/Content-Type\x3A[^\r\n]{6,}z/
-    Content-Type:xxxxxyyyz
- 0: Content-Type:xxxxxyyyz
-
-/Content-Type\x3A[^a]{6,}/
-    Content-Type:xxxyyy 
- 0: Content-Type:xxxyyy
-
-/Content-Type\x3A[^a]{6,}z/
-    Content-Type:xxxyyyz
- 0: Content-Type:xxxyyyz
-
-/^abc/m
-    xyz\nabc
- 0: abc
-    xyz\nabc\<lf>
- 0: abc
-    xyz\r\nabc\<lf>
- 0: abc
-    xyz\rabc\<cr>
- 0: abc
-    xyz\r\nabc\<crlf>
- 0: abc
-    ** Failers 
-No match
-    xyz\nabc\<cr>
-No match
-    xyz\r\nabc\<cr>
-No match
-    xyz\nabc\<crlf>
-No match
-    xyz\rabc\<crlf>
-No match
-    xyz\rabc\<lf>
-No match
-    
-/abc$/m<lf>
-    xyzabc
- 0: abc
-    xyzabc\n 
- 0: abc
-    xyzabc\npqr 
- 0: abc
-    xyzabc\r\<cr> 
- 0: abc
-    xyzabc\rpqr\<cr> 
- 0: abc
-    xyzabc\r\n\<crlf> 
- 0: abc
-    xyzabc\r\npqr\<crlf> 
- 0: abc
-    ** Failers
-No match
-    xyzabc\r 
-No match
-    xyzabc\rpqr 
-No match
-    xyzabc\r\n 
-No match
-    xyzabc\r\npqr 
-No match
-    
-/^abc/m<cr>
-    xyz\rabcdef
- 0: abc
-    xyz\nabcdef\<lf>
- 0: abc
-    ** Failers  
-No match
-    xyz\nabcdef
-No match
-       
-/^abc/m<lf>
-    xyz\nabcdef
- 0: abc
-    xyz\rabcdef\<cr>
- 0: abc
-    ** Failers  
-No match
-    xyz\rabcdef
-No match
-       
-/^abc/m<crlf>
-    xyz\r\nabcdef
- 0: abc
-    xyz\rabcdef\<cr>
- 0: abc
-    ** Failers  
-No match
-    xyz\rabcdef
-No match
-    
-/.*/<lf>
-    abc\ndef
- 0: abc
- 1: ab
- 2: a
- 3: 
-    abc\rdef
- 0: abc\x0ddef
- 1: abc\x0dde
- 2: abc\x0dd
- 3: abc\x0d
- 4: abc
- 5: ab
- 6: a
- 7: 
-    abc\r\ndef
- 0: abc\x0d
- 1: abc
- 2: ab
- 3: a
- 4: 
-    \<cr>abc\ndef
- 0: abc\x0adef
- 1: abc\x0ade
- 2: abc\x0ad
- 3: abc\x0a
- 4: abc
- 5: ab
- 6: a
- 7: 
-    \<cr>abc\rdef
- 0: abc
- 1: ab
- 2: a
- 3: 
-    \<cr>abc\r\ndef
- 0: abc
- 1: ab
- 2: a
- 3: 
-    \<crlf>abc\ndef
- 0: abc\x0adef
- 1: abc\x0ade
- 2: abc\x0ad
- 3: abc\x0a
- 4: abc
- 5: ab
- 6: a
- 7: 
-    \<crlf>abc\rdef
- 0: abc\x0ddef
- 1: abc\x0dde
- 2: abc\x0dd
- 3: abc\x0d
- 4: abc
- 5: ab
- 6: a
- 7: 
-    \<crlf>abc\r\ndef
- 0: abc
- 1: ab
- 2: a
- 3: 
-
-/\w+(.)(.)?def/s
-    abc\ndef
- 0: abc\x0adef
-    abc\rdef
- 0: abc\x0ddef
-    abc\r\ndef
- 0: abc\x0d\x0adef
-
-/^\w+=.*(\\\n.*)*/
-    abc=xyz\\\npqr
- 0: abc=xyz\\x0apqr
- 1: abc=xyz\\x0apq
- 2: abc=xyz\\x0ap
- 3: abc=xyz\\x0a
- 4: abc=xyz\
- 5: abc=xyz
- 6: abc=xy
- 7: abc=x
- 8: abc=
-
-/^(a()*)*/
-    aaaa
- 0: aaaa
- 1: aaa
- 2: aa
- 3: a
- 4: 
-
-/^(?:a(?:(?:))*)*/
-    aaaa
- 0: aaaa
- 1: aaa
- 2: aa
- 3: a
- 4: 
-
-/^(a()+)+/
-    aaaa
- 0: aaaa
- 1: aaa
- 2: aa
- 3: a
-
-/^(?:a(?:(?:))+)+/
-    aaaa
- 0: aaaa
- 1: aaa
- 2: aa
- 3: a
-
-/(a|)*\d/
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-No match
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
- 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
-
-/(?>a|)*\d/
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-No match
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
- 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
-
-/(?:a|)*\d/
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-No match
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
- 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
-
-/^a.b/<lf>
-    a\rb
- 0: a\x0db
-    a\nb\<cr> 
- 0: a\x0ab
-    ** Failers
-No match
-    a\nb
-No match
-    a\nb\<any>
-No match
-    a\rb\<cr>   
-No match
-    a\rb\<any>   
-No match
-
-/^abc./mgx<any>
-    abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
- 0: abc1
- 0: abc2
- 0: abc3
- 0: abc4
- 0: abc5
- 0: abc6
- 0: abc7
-
-/abc.$/mgx<any>
-    abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
- 0: abc1
- 0: abc2
- 0: abc3
- 0: abc4
- 0: abc5
- 0: abc6
- 0: abc9
-
-/^a\Rb/<bsr_unicode>
-    a\nb
- 0: a\x0ab
-    a\rb
- 0: a\x0db
-    a\r\nb
- 0: a\x0d\x0ab
-    a\x0bb
- 0: a\x0bb
-    a\x0cb
- 0: a\x0cb
-    a\x85b   
- 0: a\x85b
-    ** Failers
-No match
-    a\n\rb    
-No match
-
-/^a\R*b/<bsr_unicode>
-    ab
- 0: ab
-    a\nb
- 0: a\x0ab
-    a\rb
- 0: a\x0db
-    a\r\nb
- 0: a\x0d\x0ab
-    a\x0bb
- 0: a\x0bb
-    a\x0cb
- 0: a\x0cb
-    a\x85b   
- 0: a\x85b
-    a\n\rb    
- 0: a\x0a\x0db
-    a\n\r\x85\x0cb 
- 0: a\x0a\x0d\x85\x0cb
-
-/^a\R+b/<bsr_unicode>
-    a\nb
- 0: a\x0ab
-    a\rb
- 0: a\x0db
-    a\r\nb
- 0: a\x0d\x0ab
-    a\x0bb
- 0: a\x0bb
-    a\x0cb
- 0: a\x0cb
-    a\x85b   
- 0: a\x85b
-    a\n\rb    
- 0: a\x0a\x0db
-    a\n\r\x85\x0cb 
- 0: a\x0a\x0d\x85\x0cb
-    ** Failers
-No match
-    ab  
-No match
-    
-/^a\R{1,3}b/<bsr_unicode>
-    a\nb
- 0: a\x0ab
-    a\n\rb
- 0: a\x0a\x0db
-    a\n\r\x85b
- 0: a\x0a\x0d\x85b
-    a\r\n\r\nb 
- 0: a\x0d\x0a\x0d\x0ab
-    a\r\n\r\n\r\nb 
- 0: a\x0d\x0a\x0d\x0a\x0d\x0ab
-    a\n\r\n\rb
- 0: a\x0a\x0d\x0a\x0db
-    a\n\n\r\nb 
- 0: a\x0a\x0a\x0d\x0ab
-    ** Failers
-No match
-    a\n\n\n\rb
-No match
-    a\r
-No match
-
-/^a[\R]b/<bsr_unicode>
-    aRb
- 0: aRb
-    ** Failers
-No match
-    a\nb  
-No match
-
-/.+foo/
-    afoo
- 0: afoo
-    ** Failers 
-No match
-    \r\nfoo 
-No match
-    \nfoo 
-No match
-
-/.+foo/<crlf>
-    afoo
- 0: afoo
-    \nfoo 
- 0: \x0afoo
-    ** Failers 
-No match
-    \r\nfoo 
-No match
-
-/.+foo/<any>
-    afoo
- 0: afoo
-    ** Failers 
-No match
-    \nfoo 
-No match
-    \r\nfoo 
-No match
-
-/.+foo/s
-    afoo
- 0: afoo
-    \r\nfoo 
- 0: \x0d\x0afoo
-    \nfoo 
- 0: \x0afoo
-
-/^$/mg<any>
-    abc\r\rxyz
- 0: 
-    abc\n\rxyz  
- 0: 
-    ** Failers 
-No match
-    abc\r\nxyz
-No match
-
-/^X/m
-    XABC
- 0: X
-    ** Failers 
-No match
-    XABC\B
-No match
-
-/(?m)^$/<any>g+
-    abc\r\n\r\n
- 0: 
- 0+ \x0d\x0a
-
-/(?m)^$|^\r\n/<any>g+ 
-    abc\r\n\r\n
- 0: \x0d\x0a
- 0+ 
- 1: 
-    
-/(?m)$/<any>g+ 
-    abc\r\n\r\n
- 0: 
- 0+ \x0d\x0a\x0d\x0a
- 0: 
- 0+ \x0d\x0a
- 0: 
- 0+ 
-
-/(?|(abc)|(xyz))/
-   >abc<
- 0: abc
-   >xyz< 
- 0: xyz
-
-/(x)(?|(abc)|(xyz))(x)/
-    xabcx
- 0: xabcx
-    xxyzx 
- 0: xxyzx
-
-/(x)(?|(abc)(pqr)|(xyz))(x)/
-    xabcpqrx
- 0: xabcpqrx
-    xxyzx 
- 0: xxyzx
-
-/(?|(abc)|(xyz))(?1)/
-    abcabc
- 0: abcabc
-    xyzabc 
- 0: xyzabc
-    ** Failers 
-No match
-    xyzxyz 
-No match
-/\H\h\V\v/
-    X X\x0a
- 0: X X\x0a
-    X\x09X\x0b
- 0: X\x09X\x0b
-    ** Failers
-No match
-    \xa0 X\x0a   
-No match
-    
-/\H*\h+\V?\v{3,4}/ 
-    \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a
- 0: \x09 \xa0X\x0a\x0b\x0c\x0d
- 1: \x09 \xa0X\x0a\x0b\x0c
-    \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a
- 0: \x09 \xa0\x0a\x0b\x0c\x0d
- 1: \x09 \xa0\x0a\x0b\x0c
-    \x09\x20\xa0\x0a\x0b\x0c
- 0: \x09 \xa0\x0a\x0b\x0c
-    ** Failers 
-No match
-    \x09\x20\xa0\x0a\x0b
-No match
-     
-/\H{3,4}/
-    XY  ABCDE
- 0: ABCD
- 1: ABC
-    XY  PQR ST 
- 0: PQR
-    
-/.\h{3,4}./
-    XY  AB    PQRS
- 0: B    P
- 1: B    
-
-/\h*X\h?\H+Y\H?Z/
-    >XNNNYZ
- 0: XNNNYZ
-    >  X NYQZ
- 0:   X NYQZ
-    ** Failers
-No match
-    >XYZ   
-No match
-    >  X NY Z
-No match
-
-/\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/
-    >XY\x0aZ\x0aA\x0bNN\x0c
- 0: XY\x0aZ\x0aA\x0bNN\x0c
-    >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
- 0: \x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
-
-/.+A/<crlf>
-    \r\nA
-No match
-    
-/\nA/<crlf>
-    \r\nA 
- 0: \x0aA
-
-/[\r\n]A/<crlf>
-    \r\nA 
- 0: \x0aA
-
-/(\r|\n)A/<crlf>
-    \r\nA 
- 0: \x0aA
-
-/a\Rb/I<bsr_anycrlf>
-Capturing subpattern count = 0
-Options: bsr_anycrlf
-First char = 'a'
-Need char = 'b'
-    a\rb
- 0: a\x0db
-    a\nb
- 0: a\x0ab
-    a\r\nb
- 0: a\x0d\x0ab
-    ** Failers
-No match
-    a\x85b
-No match
-    a\x0bb     
-No match
-
-/a\Rb/I<bsr_unicode>
-Capturing subpattern count = 0
-Options: bsr_unicode
-First char = 'a'
-Need char = 'b'
-    a\rb
- 0: a\x0db
-    a\nb
- 0: a\x0ab
-    a\r\nb
- 0: a\x0d\x0ab
-    a\x85b
- 0: a\x85b
-    a\x0bb     
- 0: a\x0bb
-    ** Failers 
-No match
-    a\x85b\<bsr_anycrlf>
-No match
-    a\x0bb\<bsr_anycrlf>
-No match
-    
-/a\R?b/I<bsr_anycrlf>
-Capturing subpattern count = 0
-Options: bsr_anycrlf
-First char = 'a'
-Need char = 'b'
-    a\rb
- 0: a\x0db
-    a\nb
- 0: a\x0ab
-    a\r\nb
- 0: a\x0d\x0ab
-    ** Failers
-No match
-    a\x85b
-No match
-    a\x0bb     
-No match
-
-/a\R?b/I<bsr_unicode>
-Capturing subpattern count = 0
-Options: bsr_unicode
-First char = 'a'
-Need char = 'b'
-    a\rb
- 0: a\x0db
-    a\nb
- 0: a\x0ab
-    a\r\nb
- 0: a\x0d\x0ab
-    a\x85b
- 0: a\x85b
-    a\x0bb     
- 0: a\x0bb
-    ** Failers 
-No match
-    a\x85b\<bsr_anycrlf>
-No match
-    a\x0bb\<bsr_anycrlf>
-No match
-    
-/a\R{2,4}b/I<bsr_anycrlf>
-Capturing subpattern count = 0
-Options: bsr_anycrlf
-First char = 'a'
-Need char = 'b'
-    a\r\n\nb
- 0: a\x0d\x0a\x0ab
-    a\n\r\rb
- 0: a\x0a\x0d\x0db
-    a\r\n\r\n\r\n\r\nb
- 0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
-    ** Failers
-No match
-    a\x85\85b
-No match
-    a\x0b\0bb     
-No match
-
-/a\R{2,4}b/I<bsr_unicode>
-Capturing subpattern count = 0
-Options: bsr_unicode
-First char = 'a'
-Need char = 'b'
-    a\r\rb
- 0: a\x0d\x0db
-    a\n\n\nb
- 0: a\x0a\x0a\x0ab
-    a\r\n\n\r\rb
- 0: a\x0d\x0a\x0a\x0d\x0db
-    a\x85\85b
-No match
-    a\x0b\0bb     
-No match
-    ** Failers 
-No match
-    a\r\r\r\r\rb 
-No match
-    a\x85\85b\<bsr_anycrlf>
-No match
-    a\x0b\0bb\<bsr_anycrlf>
-No match
-    
-/a(?!)|\wbc/
-    abc 
- 0: abc
-
-/a[]b/<JS>
-    ** Failers
-No match
-    ab
-No match
-
-/a[]+b/<JS>
-    ** Failers
-No match
-    ab 
-No match
-
-/a[]*+b/<JS>
-    ** Failers
-No match
-    ab 
-No match
-
-/a[^]b/<JS>
-    aXb
- 0: aXb
-    a\nb 
- 0: a\x0ab
-    ** Failers
-No match
-    ab  
-No match
-    
-/a[^]+b/<JS> 
-    aXb
- 0: aXb
-    a\nX\nXb 
- 0: a\x0aX\x0aXb
-    ** Failers
-No match
-    ab  
-No match
-
-/X$/E
-    X
- 0: X
-    ** Failers 
-No match
-    X\n 
-No match
-
-/X$/
-    X
- 0: X
-    X\n 
- 0: X
-
-/xyz/C
-  xyz 
---->xyz
- +0 ^       x
- +1 ^^      y
- +2 ^ ^     z
- +3 ^  ^    
- 0: xyz
-  abcxyz 
---->abcxyz
- +0    ^       x
- +1    ^^      y
- +2    ^ ^     z
- +3    ^  ^    
- 0: xyz
-  abcxyz\Y
---->abcxyz
- +0 ^          x
- +0  ^         x
- +0   ^        x
- +0    ^       x
- +1    ^^      y
- +2    ^ ^     z
- +3    ^  ^    
- 0: xyz
-  ** Failers 
-No match
-  abc
-No match
-  abc\Y
---->abc
- +0 ^       x
- +0  ^      x
- +0   ^     x
- +0    ^    x
-No match
-  abcxypqr  
-No match
-  abcxypqr\Y  
---->abcxypqr
- +0 ^            x
- +0  ^           x
- +0   ^          x
- +0    ^         x
- +1    ^^        y
- +2    ^ ^       z
- +0     ^        x
- +0      ^       x
- +0       ^      x
- +0        ^     x
- +0         ^    x
-No match
-  
-/(?C)ab/
-  ab
---->ab
-  0 ^      a
- 0: ab
-  \C-ab
- 0: ab
-  
-/ab/C
-  ab
---->ab
- +0 ^      a
- +1 ^^     b
- +2 ^ ^    
- 0: ab
-  \C-ab    
- 0: ab
-
-/^"((?(?=[a])[^"])|b)*"$/C
-    "ab"
---->"ab"
- +0 ^        ^
- +1 ^        "
- +2 ^^       ((?(?=[a])[^"])|b)*
-+21 ^^       "
- +3 ^^       (?(?=[a])[^"])
-+18 ^^       b
- +5 ^^       (?=[a])
- +8  ^       [a]
-+11  ^^      )
-+12 ^^       [^"]
-+16 ^ ^      )
-+17 ^ ^      |
-+21 ^ ^      "
- +3 ^ ^      (?(?=[a])[^"])
-+18 ^ ^      b
- +5 ^ ^      (?=[a])
- +8   ^      [a]
-+19 ^  ^     )
-+21 ^  ^     "
- +3 ^  ^     (?(?=[a])[^"])
-+18 ^  ^     b
- +5 ^  ^     (?=[a])
- +8    ^     [a]
-+17 ^  ^     |
-+22 ^   ^    $
-+23 ^   ^    
- 0: "ab"
-    \C-"ab"
- 0: "ab"
-
-/\d+X|9+Y/
-    ++++123999\P
-Partial match: 123999
-    ++++123999Y\P
- 0: 999Y
-
-/Z(*F)/
-    Z\P
-No match
-    ZA\P 
-No match
-    
-/Z(?!)/
-    Z\P 
-No match
-    ZA\P 
-No match
-
-/dog(sbody)?/
-    dogs\P
- 0: dog
-    dogs\P\P 
-Partial match: dogs
-    
-/dog(sbody)??/
-    dogs\P
- 0: dog
-    dogs\P\P 
-Partial match: dogs
-
-/dog|dogsbody/
-    dogs\P
- 0: dog
-    dogs\P\P 
-Partial match: dogs
-/dogsbody|dog/
-    dogs\P
- 0: dog
-    dogs\P\P 
-Partial match: dogs
-
-/Z(*F)Q|ZXY/
-    Z\P
-Partial match: Z
-    ZA\P 
-No match
-    X\P 
-No match
-
-/\bthe cat\b/
-    the cat\P
- 0: the cat
-    the cat\P\P
-Partial match: the cat
-
-/dog(sbody)?/
-    dogs\D\P
- 0: dog
-    body\D\R
- 0: body
-
-/dog(sbody)?/
-    dogs\D\P\P
-Partial match: dogs
-    body\D\R
- 0: body
-
-/abc/
-   abc\P
- 0: abc
-   abc\P\P
- 0: abc
-
-/abc\K123/
-    xyzabc123pqr
-Error -16
-    
-/(?<=abc)123/
-    xyzabc123pqr 
- 0: 123
-    xyzabc12\P
-Partial match: abc12
-    xyzabc12\P\P
-Partial match: abc12
-
-/\babc\b/
-    +++abc+++
- 0: abc
-    +++ab\P
-Partial match: +ab
-    +++ab\P\P  
-Partial match: +ab
-
-/(?=C)/g+
-    ABCDECBA
- 0: 
- 0+ CDECBA
- 0: 
- 0+ CBA
-
-/(abc|def|xyz)/I
-Capturing subpattern count = 1
-No options
-No first char
-No need char
-    terhjk;abcdaadsfe
- 0: abc
-    the quick xyz brown fox 
- 0: xyz
-    \Yterhjk;abcdaadsfe
- 0: abc
-    \Ythe quick xyz brown fox 
- 0: xyz
-    ** Failers
-No match
-    thejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
-No match
-    \Ythejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
-No match
-
-/(abc|def|xyz)/SI
-Capturing subpattern count = 1
-No options
-No first char
-No need char
-Subject length lower bound = 3
-Starting byte set: a d x 
-    terhjk;abcdaadsfe
- 0: abc
-    the quick xyz brown fox 
- 0: xyz
-    \Yterhjk;abcdaadsfe
- 0: abc
-    \Ythe quick xyz brown fox 
- 0: xyz
-    ** Failers
-No match
-    thejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
-No match
-    \Ythejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
-No match
-
-/abcd*/+
-    xxxxabcd\P
- 0: abcd
- 0+ 
- 1: abc
-    xxxxabcd\P\P
-Partial match: abcd
-    dddxxx\R 
- 0: ddd
- 0+ xxx
- 1: dd
- 2: d
- 3: 
-    xxxxabcd\P\P
-Partial match: abcd
-    xxx\R 
- 0: 
- 0+ xxx
-
-/abcd*/i
-    xxxxabcd\P
- 0: abcd
- 1: abc
-    xxxxabcd\P\P
-Partial match: abcd
-    XXXXABCD\P
- 0: ABCD
- 1: ABC
-    XXXXABCD\P\P
-Partial match: ABCD
-
-/abc\d*/
-    xxxxabc1\P
- 0: abc1
- 1: abc
-    xxxxabc1\P\P
-Partial match: abc1
-
-/abc[de]*/
-    xxxxabcde\P
- 0: abcde
- 1: abcd
- 2: abc
-    xxxxabcde\P\P
-Partial match: abcde
-
-/(?:(?1)|B)(A(*F)|C)/
-    ABCD
- 0: BC
-    CCD
- 0: CC
-    ** Failers
-No match
-    CAD   
-No match
-
-/^(?:(?1)|B)(A(*F)|C)/
-    CCD
- 0: CC
-    BCD 
- 0: BC
-    ** Failers
-No match
-    ABCD
-No match
-    CAD
-No match
-    BAD    
-No match
-
-/-- End of testinput7 --/