[win32] Remove win32 PCRE lib source files
[vuplus_xbmc] / lib / win32 / pcre / testdata / testinput7
diff --git a/lib/win32/pcre/testdata/testinput7 b/lib/win32/pcre/testdata/testinput7
deleted file mode 100644 (file)
index 710d9ee..0000000
+++ /dev/null
@@ -1,4545 +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
-    
-/ab*c/
-    abc
-    abbbbc
-    ac
-    
-/ab+c/
-    abc
-    abbbbbbc
-    *** Failers 
-    ac
-    ab
-    
-/a*/
-    a
-    aaaaaaaaaaaaaaaaa
-    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
-    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\F 
-    
-/(a|abcd|african)/
-    a
-    abcd
-    african
-    
-/^abc/
-    abcdef
-    *** Failers
-    xyzabc
-    xyz\nabc    
-    
-/^abc/m
-    abcdef
-    xyz\nabc    
-    *** Failers
-    xyzabc
-    
-/\Aabc/
-    abcdef
-    *** Failers
-    xyzabc
-    xyz\nabc    
-    
-/\Aabc/m
-    abcdef
-    *** Failers
-    xyzabc
-    xyz\nabc    
-    
-/\Gabc/
-    abcdef
-    xyzabc\>3
-    *** Failers
-    xyzabc    
-    xyzabc\>2 
-    
-/x\dy\Dz/
-    x9yzz
-    x0y+z
-    *** Failers
-    xyz
-    xxy0z     
-    
-/x\sy\Sz/
-    x yzz
-    x y+z
-    *** Failers
-    xyz
-    xxyyz
-    
-/x\wy\Wz/
-    xxy+z
-    *** Failers
-    xxy0z
-    x+y+z         
-    
-/x.y/
-    x+y
-    x-y
-    *** Failers
-    x\ny
-    
-/x.y/s
-    x+y
-    x-y
-    x\ny
-
-/(a.b(?s)c.d|x.y)p.q/
-    a+bc+dp+q
-    a+bc\ndp+q
-    x\nyp+q 
-    *** Failers 
-    a\nbc\ndp+q
-    a+bc\ndp\nq
-    x\nyp\nq 
-
-/a\d\z/
-    ba0
-    *** Failers
-    ba0\n
-    ba0\ncd   
-
-/a\d\z/m
-    ba0
-    *** Failers
-    ba0\n
-    ba0\ncd   
-
-/a\d\Z/
-    ba0
-    ba0\n
-    *** Failers
-    ba0\ncd   
-
-/a\d\Z/m
-    ba0
-    ba0\n
-    *** Failers
-    ba0\ncd   
-
-/a\d$/
-    ba0
-    ba0\n
-    *** Failers
-    ba0\ncd   
-
-/a\d$/m
-    ba0
-    ba0\n
-    ba0\ncd   
-    *** Failers
-
-/abc/i
-    abc
-    aBc
-    ABC
-    
-/[^a]/
-    abcd
-    
-/ab?\w/
-    abz
-    abbz
-    azz  
-
-/x{0,3}yz/
-    ayzq
-    axyzq
-    axxyz
-    axxxyzq
-    axxxxyzq
-    *** Failers
-    ax
-    axx     
-      
-/x{3}yz/
-    axxxyzq
-    axxxxyzq
-    *** Failers
-    ax
-    axx     
-    ayzq
-    axyzq
-    axxyz
-      
-/x{2,3}yz/
-    axxyz
-    axxxyzq
-    axxxxyzq
-    *** Failers
-    ax
-    axx     
-    ayzq
-    axyzq
-      
-/[^a]+/
-    bac
-    bcdefax
-    *** Failers
-    aaaaa   
-
-/[^a]*/
-    bac
-    bcdefax
-    *** Failers
-    aaaaa   
-    
-/[^a]{3,5}/
-    xyz
-    awxyza
-    abcdefa
-    abcdefghijk
-    *** Failers
-    axya
-    axa
-    aaaaa         
-
-/\d*/
-    1234b567
-    xyz
-    
-/\D*/
-    a1234b567
-    xyz
-     
-/\d+/
-    ab1234c56
-    *** Failers
-    xyz
-    
-/\D+/
-    ab123c56
-    *** Failers
-    789
-    
-/\d?A/
-    045ABC
-    ABC
-    *** Failers
-    XYZ
-    
-/\D?A/
-    ABC
-    BAC
-    9ABC             
-    *** Failers
-
-/a+/
-    aaaa
-
-/^.*xyz/
-    xyz
-    ggggggggxyz
-    
-/^.+xyz/
-    abcdxyz
-    axyz
-    *** Failers
-    xyz
-    
-/^.?xyz/
-    xyz
-    cxyz       
-
-/^\d{2,3}X/
-    12X
-    123X
-    *** Failers
-    X
-    1X
-    1234X     
-
-/^[abcd]\d/
-    a45
-    b93
-    c99z
-    d04
-    *** Failers
-    e45
-    abcd      
-    abcd1234
-    1234  
-
-/^[abcd]*\d/
-    a45
-    b93
-    c99z
-    d04
-    abcd1234
-    1234  
-    *** Failers
-    e45
-    abcd      
-
-/^[abcd]+\d/
-    a45
-    b93
-    c99z
-    d04
-    abcd1234
-    *** Failers
-    1234  
-    e45
-    abcd      
-
-/^a+X/
-    aX
-    aaX 
-
-/^[abcd]?\d/
-    a45
-    b93
-    c99z
-    d04
-    1234  
-    *** Failers
-    abcd1234
-    e45
-
-/^[abcd]{2,3}\d/
-    ab45
-    bcd93
-    *** Failers
-    1234 
-    a36 
-    abcd1234
-    ee45
-
-/^(abc)*\d/
-    abc45
-    abcabcabc45
-    42xyz 
-    *** Failers
-
-/^(abc)+\d/
-    abc45
-    abcabcabc45
-    *** Failers
-    42xyz 
-
-/^(abc)?\d/
-    abc45
-    42xyz 
-    *** Failers
-    abcabcabc45
-
-/^(abc){2,3}\d/
-    abcabc45
-    abcabcabc45
-    *** Failers
-    abcabcabcabc45
-    abc45
-    42xyz 
-
-/1(abc|xyz)2(?1)3/
-    1abc2abc3456
-    1abc2xyz3456 
-
-/^(a*\w|ab)=(a*\w|ab)/
-    ab=ab
-
-/^(a*\w|ab)=(?1)/
-    ab=ab
-
-/^([^()]|\((?1)*\))*$/
-    abc
-    a(b)c
-    a(b(c))d  
-    *** Failers)
-    a(b(c)d  
-
-/^>abc>([^()]|\((?1)*\))*<xyz<$/
-    >abc>123<xyz<
-    >abc>1(2)3<xyz<
-    >abc>(1(2)3)<xyz<
-
-/^(?>a*)\d/
-    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9876
-    *** Failers 
-    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-
-/< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x
-    <>
-    <abcd>
-    <abc <123> hij>
-    <abc <def> hij>
-    <abc<>def> 
-    <abc<>      
-    *** Failers
-    <abc
-
-/^(?(?=abc)\w{3}:|\d\d)$/        
-    abc:                          
-    12                             
-    *** Failers                     
-    123                       
-    xyz                        
-                                
-/^(?(?!abc)\d\d|\w{3}:)$/      
-    abc:                        
-    12         
-    *** Failers
-    123
-    xyz    
-
-/^(?=abc)\w{5}:$/        
-    abcde:                          
-    *** Failers                     
-    abc.. 
-    123                       
-    vwxyz                        
-                                
-/^(?!abc)\d\d$/      
-    12         
-    *** Failers
-    abcde:
-    abc..  
-    123
-    vwxyz    
-
-/(?<=abc|xy)123/
-    abc12345
-    wxy123z
-    *** Failers
-    123abc
-
-/(?<!abc|xy)123/
-    123abc
-    mno123456 
-    *** Failers
-    abc12345
-    wxy123z
-
-/abc(?C1)xyz/
-    abcxyz
-    123abcxyz999 
-
-/(ab|cd){3,4}/C
-  ababab
-  abcdabcd
-  abcdcdcdcdcd  
-
-/^abc/
-    abcdef
-    *** Failers
-    abcdef\B  
-
-/^(a*|xyz)/
-    bcd
-    aaabcd
-    xyz
-    xyz\N  
-    *** Failers
-    bcd\N   
-    
-/xyz$/
-    xyz
-    xyz\n
-    *** Failers
-    xyz\Z
-    xyz\n\Z    
-    
-/xyz$/m
-    xyz
-    xyz\n 
-    abcxyz\npqr 
-    abcxyz\npqr\Z 
-    xyz\n\Z    
-    *** Failers
-    xyz\Z
-
-/\Gabc/
-    abcdef
-    defabcxyz\>3 
-    *** Failers 
-    defabcxyz
-
-/^abcdef/
-    ab\P
-    abcde\P
-    abcdef\P
-    *** Failers
-    abx\P    
-
-/^a{2,4}\d+z/
-    a\P
-    aa\P
-    aa2\P 
-    aaa\P
-    aaa23\P 
-    aaaa12345\P
-    aa0z\P
-    aaaa4444444444444z\P 
-    *** Failers
-    az\P 
-    aaaaa\P 
-    a56\P 
-
-/^abcdef/
-   abc\P
-   def\R 
-   
-/(?<=foo)bar/
-   xyzfo\P 
-   foob\P\>2 
-   foobar...\R\P\>4 
-   xyzfo\P
-   foobar\>2  
-   *** Failers
-   xyzfo\P
-   obar\R   
-
-/(ab*(cd|ef))+X/
-    adfadadaklhlkalkajhlkjahdfasdfasdfladsfjkj\P\Z
-    lkjhlkjhlkjhlkjhabbbbbbcdaefabbbbbbbefa\P\B\Z
-    cdabbbbbbbb\P\R\B\Z
-    efabbbbbbbbbbbbbbbb\P\R\B\Z
-    bbbbbbbbbbbbcdXyasdfadf\P\R\B\Z    
-
-/(a|b)/SF>testsavedregex
-<testsavedregex
-    abc
-    ** Failers
-    def  
-    
-/the quick brown fox/
-    the quick brown fox
-    The quick brown FOX
-    What do you know about the quick brown fox?
-    What do you know about THE QUICK BROWN FOX?
-
-/The quick brown fox/i
-    the quick brown fox
-    The quick brown FOX
-    What do you know about the quick brown fox?
-    What do you know about THE QUICK BROWN FOX?
-
-/abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
-    abcd\t\n\r\f\a\e9;\$\\?caxyz
-
-/a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
-    abxyzpqrrrabbxyyyypqAzz
-    abxyzpqrrrabbxyyyypqAzz
-    aabxyzpqrrrabbxyyyypqAzz
-    aaabxyzpqrrrabbxyyyypqAzz
-    aaaabxyzpqrrrabbxyyyypqAzz
-    abcxyzpqrrrabbxyyyypqAzz
-    aabcxyzpqrrrabbxyyyypqAzz
-    aaabcxyzpqrrrabbxyyyypAzz
-    aaabcxyzpqrrrabbxyyyypqAzz
-    aaabcxyzpqrrrabbxyyyypqqAzz
-    aaabcxyzpqrrrabbxyyyypqqqAzz
-    aaabcxyzpqrrrabbxyyyypqqqqAzz
-    aaabcxyzpqrrrabbxyyyypqqqqqAzz
-    aaabcxyzpqrrrabbxyyyypqqqqqqAzz
-    aaaabcxyzpqrrrabbxyyyypqAzz
-    abxyzzpqrrrabbxyyyypqAzz
-    aabxyzzzpqrrrabbxyyyypqAzz
-    aaabxyzzzzpqrrrabbxyyyypqAzz
-    aaaabxyzzzzpqrrrabbxyyyypqAzz
-    abcxyzzpqrrrabbxyyyypqAzz
-    aabcxyzzzpqrrrabbxyyyypqAzz
-    aaabcxyzzzzpqrrrabbxyyyypqAzz
-    aaaabcxyzzzzpqrrrabbxyyyypqAzz
-    aaaabcxyzzzzpqrrrabbbxyyyypqAzz
-    aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
-    aaabcxyzpqrrrabbxyyyypABzz
-    aaabcxyzpqrrrabbxyyyypABBzz
-    >>>aaabxyzpqrrrabbxyyyypqAzz
-    >aaaabxyzpqrrrabbxyyyypqAzz
-    >>>>abcxyzpqrrrabbxyyyypqAzz
-    *** Failers
-    abxyzpqrrabbxyyyypqAzz
-    abxyzpqrrrrabbxyyyypqAzz
-    abxyzpqrrrabxyyyypqAzz
-    aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz
-    aaaabcxyzzzzpqrrrabbbxyyypqAzz
-    aaabcxyzpqrrrabbxyyyypqqqqqqqAzz
-
-/^(abc){1,2}zz/
-    abczz
-    abcabczz
-    *** Failers
-    zz
-    abcabcabczz
-    >>abczz
-
-/^(b+?|a){1,2}?c/
-    bc
-    bbc
-    bbbc
-    bac
-    bbac
-    aac
-    abbbbbbbbbbbc
-    bbbbbbbbbbbac
-    *** Failers
-    aaac
-    abbbbbbbbbbbac
-
-/^(b+|a){1,2}c/
-    bc
-    bbc
-    bbbc
-    bac
-    bbac
-    aac
-    abbbbbbbbbbbc
-    bbbbbbbbbbbac
-    *** Failers
-    aaac
-    abbbbbbbbbbbac
-
-/^(b+|a){1,2}?bc/
-    bbc
-
-/^(b*|ba){1,2}?bc/
-    babc
-    bbabc
-    bababc
-    *** Failers
-    bababbc
-    babababc
-
-/^(ba|b*){1,2}?bc/
-    babc
-    bbabc
-    bababc
-    *** Failers
-    bababbc
-    babababc
-
-/^\ca\cA\c[\c{\c:/
-    \x01\x01\e;z
-
-/^[ab\]cde]/
-    athing
-    bthing
-    ]thing
-    cthing
-    dthing
-    ething
-    *** Failers
-    fthing
-    [thing
-    \\thing
-
-/^[]cde]/
-    ]thing
-    cthing
-    dthing
-    ething
-    *** Failers
-    athing
-    fthing
-
-/^[^ab\]cde]/
-    fthing
-    [thing
-    \\thing
-    *** Failers
-    athing
-    bthing
-    ]thing
-    cthing
-    dthing
-    ething
-
-/^[^]cde]/
-    athing
-    fthing
-    *** Failers
-    ]thing
-    cthing
-    dthing
-    ething
-
-/^\\81/
-    \81
-
-/^ÿ/
-    ÿ
-
-/^[0-9]+$/
-    0
-    1
-    2
-    3
-    4
-    5
-    6
-    7
-    8
-    9
-    10
-    100
-    *** Failers
-    abc
-
-/^.*nter/
-    enter
-    inter
-    uponter
-
-/^xxx[0-9]+$/
-    xxx0
-    xxx1234
-    *** Failers
-    xxx
-
-/^.+[0-9][0-9][0-9]$/
-    x123
-    xx123
-    123456
-    *** Failers
-    123
-    x1234
-
-/^.+?[0-9][0-9][0-9]$/
-    x123
-    xx123
-    123456
-    *** Failers
-    123
-    x1234
-
-/^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/
-    abc!pqr=apquxz.ixr.zzz.ac.uk
-    *** Failers
-    !pqr=apquxz.ixr.zzz.ac.uk
-    abc!=apquxz.ixr.zzz.ac.uk
-    abc!pqr=apquxz:ixr.zzz.ac.uk
-    abc!pqr=apquxz.ixr.zzz.ac.ukk
-
-/:/
-    Well, we need a colon: somewhere
-    *** Fail if we don't
-
-/([\da-f:]+)$/i
-    0abc
-    abc
-    fed
-    E
-    ::
-    5f03:12C0::932e
-    fed def
-    Any old stuff
-    *** Failers
-    0zzz
-    gzzz
-    fed\x20
-    Any old rubbish
-
-/^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
-    .1.2.3
-    A.12.123.0
-    *** Failers
-    .1.2.3333
-    1.2.3
-    1234.2.3
-
-/^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
-    1 IN SOA non-sp1 non-sp2(
-    1    IN    SOA    non-sp1    non-sp2   (
-    *** Failers
-    1IN SOA non-sp1 non-sp2(
-
-/^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/
-    a.
-    Z.
-    2.
-    ab-c.pq-r.
-    sxk.zzz.ac.uk.
-    x-.y-.
-    *** Failers
-    -abc.peq.
-
-/^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/
-    *.a
-    *.b0-a
-    *.c3-b.c
-    *.c-a.b-c
-    *** Failers
-    *.0
-    *.a-
-    *.a-b.c-
-    *.c-a.0-c
-
-/^(?=ab(de))(abd)(e)/
-    abde
-
-/^(?!(ab)de|x)(abd)(f)/
-    abdf
-
-/^(?=(ab(cd)))(ab)/
-    abcd
-
-/^[\da-f](\.[\da-f])*$/i
-    a.b.c.d
-    A.B.C.D
-    a.b.c.1.2.3.C
-
-/^\".*\"\s*(;.*)?$/
-    \"1234\"
-    \"abcd\" ;
-    \"\" ; rhubarb
-    *** Failers
-    \"1234\" : things
-
-/^$/
-    \
-    *** Failers
-
-/   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/x
-    ab c
-    *** Failers
-    abc
-    ab cde
-
-/(?x)   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/
-    ab c
-    *** Failers
-    abc
-    ab cde
-
-/^   a\ b[c ]d       $/x
-    a bcd
-    a b d
-    *** Failers
-    abcd
-    ab d
-
-/^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
-    abcdefhijklm
-
-/^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
-    abcdefhijklm
-
-/^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
-    a+ Z0+\x08\n\x1d\x12
-
-/^[.^$|()*+?{,}]+/
-    .^\$(*+)|{?,?}
-
-/^a*\w/
-    z
-    az
-    aaaz
-    a
-    aa
-    aaaa
-    a+
-    aa+
-
-/^a*?\w/
-    z
-    az
-    aaaz
-    a
-    aa
-    aaaa
-    a+
-    aa+
-
-/^a+\w/
-    az
-    aaaz
-    aa
-    aaaa
-    aa+
-
-/^a+?\w/
-    az
-    aaaz
-    aa
-    aaaa
-    aa+
-
-/^\d{8}\w{2,}/
-    1234567890
-    12345678ab
-    12345678__
-    *** Failers
-    1234567
-
-/^[aeiou\d]{4,5}$/
-    uoie
-    1234
-    12345
-    aaaaa
-    *** Failers
-    123456
-
-/^[aeiou\d]{4,5}?/
-    uoie
-    1234
-    12345
-    aaaaa
-    123456
-
-/^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
-
-/^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
-    From abcd  Mon Sep  1 12:33:02 1997
-    *** Failers
-    From abcd  Sep 01 12:33:02 1997
-
-/^12.34/s
-    12\n34
-    12\r34
-
-/\w+(?=\t)/
-    the quick brown\t fox
-
-/foo(?!bar)(.*)/
-    foobar is foolish see?
-
-/(?:(?!foo)...|^.{0,2})bar(.*)/
-    foobar crowbar etc
-    barrel
-    2barrel
-    A barrel
-
-/^(\D*)(?=\d)(?!123)/
-    abc456
-    *** Failers
-    abc123
-
-/^1234(?# test newlines
-  inside)/
-    1234
-
-/^1234 #comment in extended re
-  /x
-    1234
-
-/#rhubarb
-  abcd/x
-    abcd
-
-/^abcd#rhubarb/x
-    abcd
-
-/(?!^)abc/
-    the abc
-    *** Failers
-    abc
-
-/(?=^)abc/
-    abc
-    *** Failers
-    the abc
-
-/^[ab]{1,3}(ab*|b)/
-    aabbbbb
-
-/^[ab]{1,3}?(ab*|b)/
-    aabbbbb
-
-/^[ab]{1,3}?(ab*?|b)/
-    aabbbbb
-
-/^[ab]{1,3}(ab*?|b)/
-    aabbbbb
-
-/  (?: [\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>
-    <user\@dom.ain>
-    user\@dom.ain
-    \"A. Other\" <user.1234\@dom.ain> (a comment)
-    A. Other <user.1234\@dom.ain> (a comment)
-    \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
-    A missing angle <user\@some.where
-    *** Failers
-    The quick brown fox
-
-/[\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>
-    <user\@dom.ain>
-    user\@dom.ain
-    \"A. Other\" <user.1234\@dom.ain> (a comment)
-    A. Other <user.1234\@dom.ain> (a comment)
-    \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
-    A missing angle <user\@some.where
-    *** Failers
-    The quick brown fox
-
-/abc\0def\00pqr\000xyz\0000AB/
-    abc\0def\00pqr\000xyz\0000AB
-    abc456 abc\0def\00pqr\000xyz\0000ABCDE
-
-/abc\x0def\x00pqr\x000xyz\x0000AB/
-    abc\x0def\x00pqr\x000xyz\x0000AB
-    abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE
-
-/^[\000-\037]/
-    \0A
-    \01B
-    \037C
-
-/\0*/
-    \0\0\0\0
-
-/A\x0{2,3}Z/
-    The A\x0\x0Z
-    An A\0\x0\0Z
-    *** Failers
-    A\0Z
-    A\0\x0\0\x0Z
-
-/^\s/
-    \040abc
-    \x0cabc
-    \nabc
-    \rabc
-    \tabc
-    *** Failers
-    abc
-
-/^a    b
-    \f  c/x
-    abc
-
-/ab{1,3}bc/
-    abbbbc
-    abbbc
-    abbc
-    *** Failers
-    abc
-    abbbbbc
-
-/([^.]*)\.([^:]*):[T ]+(.*)/
-    track1.title:TBlah blah blah
-
-/([^.]*)\.([^:]*):[T ]+(.*)/i
-    track1.title:TBlah blah blah
-
-/([^.]*)\.([^:]*):[t ]+(.*)/i
-    track1.title:TBlah blah blah
-
-/^[W-c]+$/
-    WXY_^abc
-    *** Failers
-    wxy
-
-/^[W-c]+$/i
-    WXY_^abc
-    wxy_^ABC
-
-/^[\x3f-\x5F]+$/i
-    WXY_^abc
-    wxy_^ABC
-
-/^abc$/m
-    abc
-    qqq\nabc
-    abc\nzzz
-    qqq\nabc\nzzz
-
-/^abc$/
-    abc
-    *** Failers
-    qqq\nabc
-    abc\nzzz
-    qqq\nabc\nzzz
-
-/\Aabc\Z/m
-    abc
-    abc\n 
-    *** Failers
-    qqq\nabc
-    abc\nzzz
-    qqq\nabc\nzzz
-    
-/\A(.)*\Z/s
-    abc\ndef
-
-/\A(.)*\Z/m
-    *** Failers
-    abc\ndef
-
-/(?:b)|(?::+)/
-    b::c
-    c::b
-
-/[-az]+/
-    az-
-    *** Failers
-    b
-
-/[az-]+/
-    za-
-    *** Failers
-    b
-
-/[a\-z]+/
-    a-z
-    *** Failers
-    b
-
-/[a-z]+/
-    abcdxyz
-
-/[\d-]+/
-    12-34
-    *** Failers
-    aaa
-
-/[\d-z]+/
-    12-34z
-    *** Failers
-    aaa
-
-/\x5c/
-    \\
-
-/\x20Z/
-    the Zoo
-    *** Failers
-    Zulu
-
-/ab{3cd/
-    ab{3cd
-
-/ab{3,cd/
-    ab{3,cd
-
-/ab{3,4a}cd/
-    ab{3,4a}cd
-
-/{4,5a}bc/
-    {4,5a}bc
-
-/^a.b/<lf>
-    a\rb
-    *** Failers
-    a\nb
-
-/abc$/
-    abc
-    abc\n
-    *** Failers
-    abc\ndef
-
-/(abc)\123/
-    abc\x53
-
-/(abc)\223/
-    abc\x93
-
-/(abc)\323/
-    abc\xd3
-
-/(abc)\100/
-    abc\x40
-    abc\100
-
-/(abc)\1000/
-    abc\x400
-    abc\x40\x30
-    abc\1000
-    abc\100\x30
-    abc\100\060
-    abc\100\60
-
-/abc\81/
-    abc\081
-    abc\0\x38\x31
-
-/abc\91/
-    abc\091
-    abc\0\x39\x31
-
-/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
-    abcdefghijk\12S
-
-/ab\idef/
-    abidef
-
-/a{0}bc/
-    bc
-
-/(a|(bc)){0,0}?xyz/
-    xyz
-
-/abc[\10]de/
-    abc\010de
-
-/abc[\1]de/
-    abc\1de
-
-/(abc)[\1]de/
-    abc\1de
-
-/(?s)a.b/
-    a\nb
-
-/^([^a])([^\b])([^c]*)([^d]{3,4})/
-    baNOTccccd
-    baNOTcccd
-    baNOTccd
-    bacccd
-    *** Failers
-    anything
-    b\bc   
-    baccd
-
-/[^a]/
-    Abc
-  
-/[^a]/i
-    Abc 
-
-/[^a]+/
-    AAAaAbc
-  
-/[^a]+/i
-    AAAaAbc 
-
-/[^a]+/
-    bbb\nccc
-   
-/[^k]$/
-    abc
-    *** Failers
-    abk   
-   
-/[^k]{2,3}$/
-    abc
-    kbc
-    kabc 
-    *** Failers
-    abk
-    akb
-    akk 
-
-/^\d{8,}\@.+[^k]$/
-    12345678\@a.b.c.d
-    123456789\@x.y.z
-    *** Failers
-    12345678\@x.y.uk
-    1234567\@a.b.c.d       
-
-/[^a]/
-    aaaabcd
-    aaAabcd 
-
-/[^a]/i
-    aaaabcd
-    aaAabcd 
-
-/[^az]/
-    aaaabcd
-    aaAabcd 
-
-/[^az]/i
-    aaaabcd
-    aaAabcd 
-
-/\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
-
-/P[^*]TAIRE[^*]{1,6}?LL/
-    xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
-
-/P[^*]TAIRE[^*]{1,}?LL/
-    xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
-
-/(\.\d\d[1-9]?)\d+/
-    1.230003938
-    1.875000282   
-    1.235  
-                  
-/(\.\d\d((?=0)|\d(?=\d)))/
-    1.230003938      
-    1.875000282
-    *** Failers 
-    1.235 
-    
-/a(?)b/
-    ab 
-/\b(foo)\s+(\w+)/i
-    Food is on the foo table
-    
-/foo(.*)bar/
-    The food is under the bar in the barn.
-    
-/foo(.*?)bar/  
-    The food is under the bar in the barn.
-
-/(.*)(\d*)/
-    I have 2 numbers: 53147
-    
-/(.*)(\d+)/
-    I have 2 numbers: 53147
-/(.*?)(\d*)/
-    I have 2 numbers: 53147
-
-/(.*?)(\d+)/
-    I have 2 numbers: 53147
-
-/(.*)(\d+)$/
-    I have 2 numbers: 53147
-
-/(.*?)(\d+)$/
-    I have 2 numbers: 53147
-
-/(.*)\b(\d+)$/
-    I have 2 numbers: 53147
-
-/(.*\D)(\d+)$/
-    I have 2 numbers: 53147
-
-/^\D*(?!123)/
-    ABC123
-     
-/^(\D*)(?=\d)(?!123)/
-    ABC445
-    *** Failers
-    ABC123
-    
-/^[W-]46]/
-    W46]789 
-    -46]789
-    *** Failers
-    Wall
-    Zebra
-    42
-    [abcd] 
-    ]abcd[
-       
-/^[W-\]46]/
-    W46]789 
-    Wall
-    Zebra
-    Xylophone  
-    42
-    [abcd] 
-    ]abcd[
-    \\backslash 
-    *** Failers
-    -46]789
-    well
-    
-/\d\d\/\d\d\/\d\d\d\d/
-    01/01/2000
-
-/word (?:[a-zA-Z0-9]+ ){0,10}otherword/
-  word cat dog elephant mussel cow horse canary baboon snake shark otherword
-  word cat dog elephant mussel cow horse canary baboon snake shark
-
-/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
-
-/^(a){0,0}/
-    bcd
-    abc
-    aab     
-
-/^(a){0,1}/
-    bcd
-    abc
-    aab  
-
-/^(a){0,2}/
-    bcd
-    abc
-    aab  
-
-/^(a){0,3}/
-    bcd
-    abc
-    aab
-    aaa   
-
-/^(a){0,}/
-    bcd
-    abc
-    aab
-    aaa
-    aaaaaaaa    
-
-/^(a){1,1}/
-    bcd
-    abc
-    aab  
-
-/^(a){1,2}/
-    bcd
-    abc
-    aab  
-
-/^(a){1,3}/
-    bcd
-    abc
-    aab
-    aaa   
-
-/^(a){1,}/
-    bcd
-    abc
-    aab
-    aaa
-    aaaaaaaa    
-
-/.*\.gif/
-    borfle\nbib.gif\nno
-
-/.{0,}\.gif/
-    borfle\nbib.gif\nno
-
-/.*\.gif/m
-    borfle\nbib.gif\nno
-
-/.*\.gif/s
-    borfle\nbib.gif\nno
-
-/.*\.gif/ms
-    borfle\nbib.gif\nno
-    
-/.*$/
-    borfle\nbib.gif\nno
-
-/.*$/m
-    borfle\nbib.gif\nno
-
-/.*$/s
-    borfle\nbib.gif\nno
-
-/.*$/ms
-    borfle\nbib.gif\nno
-    
-/.*$/
-    borfle\nbib.gif\nno\n
-
-/.*$/m
-    borfle\nbib.gif\nno\n
-
-/.*$/s
-    borfle\nbib.gif\nno\n
-
-/.*$/ms
-    borfle\nbib.gif\nno\n
-    
-/(.*X|^B)/
-    abcde\n1234Xyz
-    BarFoo 
-    *** Failers
-    abcde\nBar  
-
-/(.*X|^B)/m
-    abcde\n1234Xyz
-    BarFoo 
-    abcde\nBar  
-
-/(.*X|^B)/s
-    abcde\n1234Xyz
-    BarFoo 
-    *** Failers
-    abcde\nBar  
-
-/(.*X|^B)/ms
-    abcde\n1234Xyz
-    BarFoo 
-    abcde\nBar  
-
-/(?s)(.*X|^B)/
-    abcde\n1234Xyz
-    BarFoo 
-    *** Failers 
-    abcde\nBar  
-
-/(?s:.*X|^B)/
-    abcde\n1234Xyz
-    BarFoo 
-    *** Failers 
-    abcde\nBar  
-
-/^.*B/
-    **** Failers
-    abc\nB
-     
-/(?s)^.*B/
-    abc\nB
-
-/(?m)^.*B/
-    abc\nB
-     
-/(?ms)^.*B/
-    abc\nB
-
-/(?ms)^B/
-    abc\nB
-
-/(?s)B$/
-    B\n
-
-/^[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
-  
-/^\d\d\d\d\d\d\d\d\d\d\d\d/
-    123456654321 
-
-/^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
-    123456654321
-  
-/^[abc]{12}/
-    abcabcabcabc
-    
-/^[a-c]{12}/
-    abcabcabcabc
-    
-/^(a|b|c){12}/
-    abcabcabcabc 
-
-/^[abcdefghijklmnopqrstuvwxy0123456789]/
-    n
-    *** Failers 
-    z 
-
-/abcde{0,0}/
-    abcd
-    *** Failers
-    abce  
-
-/ab[cd]{0,0}e/
-    abe
-    *** Failers
-    abcde 
-    
-/ab(c){0,0}d/
-    abd
-    *** Failers
-    abcd   
-
-/a(b*)/
-    a
-    ab
-    abbbb
-    *** Failers
-    bbbbb    
-    
-/ab\d{0}e/
-    abe
-    *** Failers
-    ab1e   
-    
-/"([^\\"]+|\\.)*"/
-    the \"quick\" brown fox
-    \"the \\\"quick\\\" brown fox\" 
-
-/.*?/g+
-    abc
-  
-/\b/g+
-    abc 
-
-/\b/+g
-    abc 
-
-//g
-    abc
-
-/<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>
-
-/a[^a]b/
-    acb
-    a\nb
-    
-/a.b/
-    acb
-    *** Failers 
-    a\nb   
-    
-/a[^a]b/s
-    acb
-    a\nb  
-    
-/a.b/s
-    acb
-    a\nb  
-
-/^(b+?|a){1,2}?c/
-    bac
-    bbac
-    bbbac
-    bbbbac
-    bbbbbac 
-
-/^(b+|a){1,2}?c/
-    bac
-    bbac
-    bbbac
-    bbbbac
-    bbbbbac 
-    
-/(?!\A)x/m
-    x\nb\n
-    a\bx\n  
-    
-/\x0{ab}/
-    \0{ab} 
-
-/(A|B)*?CD/
-    CD 
-    
-/(A|B)*CD/
-    CD 
-
-/(?<!bar)foo/
-    foo
-    catfood
-    arfootle
-    rfoosh
-    *** Failers
-    barfoo
-    towbarfoo
-
-/\w{3}(?<!bar)foo/
-    catfood
-    *** Failers
-    foo
-    barfoo
-    towbarfoo
-
-/(?<=(foo)a)bar/
-    fooabar
-    *** Failers
-    bar
-    foobbar
-      
-/\Aabc\z/m
-    abc
-    *** Failers
-    abc\n   
-    qqq\nabc
-    abc\nzzz
-    qqq\nabc\nzzz
-
-"(?>.*/)foo"
-    /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
-
-"(?>.*/)foo"
-    /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
-
-/(?>(\.\d\d[1-9]?))\d+/
-    1.230003938
-    1.875000282
-    *** Failers 
-    1.235 
-
-/^((?>\w+)|(?>\s+))*$/
-    now is the time for all good men to come to the aid of the party
-    *** Failers
-    this is not a line with only words and spaces!
-    
-/(\d+)(\w)/
-    12345a
-    12345+ 
-
-/((?>\d+))(\w)/
-    12345a
-    *** Failers
-    12345+ 
-
-/(?>a+)b/
-    aaab
-
-/((?>a+)b)/
-    aaab
-
-/(?>(a+))b/
-    aaab
-
-/(?>b)+/
-    aaabbbccc
-
-/(?>a+|b+|c+)*c/
-    aaabbbbccccd
-    
-/(a+|b+|c+)*c/
-    aaabbbbccccd
-
-/((?>[^()]+)|\([^()]*\))+/
-    ((abc(ade)ufh()()x
-    
-/\(((?>[^()]+)|\([^()]+\))+\)/ 
-    (abc)
-    (abc(def)xyz)
-    *** Failers
-    ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   
-
-/a(?-i)b/i
-    ab
-    Ab
-    *** Failers 
-    aB
-    AB
-        
-/(a (?x)b c)d e/
-    a bcd e
-    *** Failers
-    a b cd e
-    abcd e   
-    a bcde 
-/(a b(?x)c d (?-x)e f)/
-    a bcde f
-    *** Failers
-    abcdef  
-
-/(a(?i)b)c/
-    abc
-    aBc
-    *** Failers
-    abC
-    aBC  
-    Abc
-    ABc
-    ABC
-    AbC
-    
-/a(?i:b)c/
-    abc
-    aBc
-    *** Failers 
-    ABC
-    abC
-    aBC
-    
-/a(?i:b)*c/
-    aBc
-    aBBc
-    *** Failers 
-    aBC
-    aBBC
-    
-/a(?=b(?i)c)\w\wd/
-    abcd
-    abCd
-    *** Failers
-    aBCd
-    abcD     
-    
-/(?s-i:more.*than).*million/i
-    more than million
-    more than MILLION
-    more \n than Million 
-    *** Failers
-    MORE THAN MILLION    
-    more \n than \n million 
-
-/(?:(?s-i)more.*than).*million/i
-    more than million
-    more than MILLION
-    more \n than Million 
-    *** Failers
-    MORE THAN MILLION    
-    more \n than \n million 
-    
-/(?>a(?i)b+)+c/ 
-    abc
-    aBbc
-    aBBc 
-    *** Failers
-    Abc
-    abAb    
-    abbC 
-    
-/(?=a(?i)b)\w\wc/
-    abc
-    aBc
-    *** Failers
-    Ab 
-    abC
-    aBC     
-    
-/(?<=a(?i)b)(\w\w)c/
-    abxxc
-    aBxxc
-    *** Failers
-    Abxxc
-    ABxxc
-    abxxC      
-
-/^(?(?=abc)\w{3}:|\d\d)$/
-    abc:
-    12
-    *** Failers
-    123
-    xyz    
-
-/^(?(?!abc)\d\d|\w{3}:)$/
-    abc:
-    12
-    *** Failers
-    123
-    xyz    
-    
-/(?(?<=foo)bar|cat)/
-    foobar
-    cat
-    fcat
-    focat   
-    *** Failers
-    foocat  
-
-/(?(?<!foo)cat|bar)/
-    foobar
-    cat
-    fcat
-    focat   
-    *** Failers
-    foocat  
-
-/(?>a*)*/
-    a
-    aa
-    aaaa
-    
-/(abc|)+/
-    abc
-    abcabc
-    abcabcabc
-    xyz      
-
-/([a]*)*/
-    a
-    aaaaa 
-/([ab]*)*/
-    a
-    b
-    ababab
-    aaaabcde
-    bbbb    
-/([^a]*)*/
-    b
-    bbbb
-    aaa   
-/([^ab]*)*/
-    cccc
-    abab  
-/([a]*?)*/
-    a
-    aaaa 
-/([ab]*?)*/
-    a
-    b
-    abab
-    baba   
-/([^a]*?)*/
-    b
-    bbbb
-    aaa   
-/([^ab]*?)*/
-    c
-    cccc
-    baba   
-/(?>a*)*/
-    a
-    aaabcde 
-/((?>a*))*/
-    aaaaa
-    aabbaa 
-/((?>a*?))*/
-    aaaaa
-    aabbaa 
-
-/(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /x
-    12-sep-98
-    12-09-98
-    *** Failers
-    sep-12-98
-        
-/(?i:saturday|sunday)/
-    saturday
-    sunday
-    Saturday
-    Sunday
-    SATURDAY
-    SUNDAY
-    SunDay
-    
-/(a(?i)bc|BB)x/
-    abcx
-    aBCx
-    bbx
-    BBx
-    *** Failers
-    abcX
-    aBCX
-    bbX
-    BBX               
-
-/^([ab](?i)[cd]|[ef])/
-    ac
-    aC
-    bD
-    elephant
-    Europe 
-    frog
-    France
-    *** Failers
-    Africa     
-
-/^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
-    ab
-    aBd
-    xy
-    xY
-    zebra
-    Zambesi
-    *** Failers
-    aCD  
-    XY  
-
-/(?<=foo\n)^bar/m
-    foo\nbar
-    *** Failers
-    bar
-    baz\nbar   
-
-/(?<=(?<!foo)bar)baz/
-    barbaz
-    barbarbaz 
-    koobarbaz 
-    *** Failers
-    baz
-    foobarbaz 
-
-/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./
-
-/abc/
-    abc
-    xabcy
-    ababc
-    *** Failers
-    xbc
-    axc
-    abx
-
-/ab*c/
-    abc
-
-/ab*bc/
-    abc
-    abbc
-    abbbbc
-
-/.{1}/
-    abbbbc
-
-/.{3,4}/
-    abbbbc
-
-/ab{0,}bc/
-    abbbbc
-
-/ab+bc/
-    abbc
-    *** Failers
-    abc
-    abq
-
-/ab+bc/
-    abbbbc
-
-/ab{1,}bc/
-    abbbbc
-
-/ab{1,3}bc/
-    abbbbc
-
-/ab{3,4}bc/
-    abbbbc
-
-/ab{4,5}bc/
-    *** Failers
-    abq
-    abbbbc
-
-/ab?bc/
-    abbc
-    abc
-
-/ab{0,1}bc/
-    abc
-
-/ab?bc/
-
-/ab?c/
-    abc
-
-/ab{0,1}c/
-    abc
-
-/^abc$/
-    abc
-    *** Failers
-    abbbbc
-    abcc
-
-/^abc/
-    abcc
-
-/^abc$/
-
-/abc$/
-    aabc
-    *** Failers
-    aabc
-    aabcd
-
-/^/
-    abc
-
-/$/
-    abc
-
-/a.c/
-    abc
-    axc
-
-/a.*c/
-    axyzc
-
-/a[bc]d/
-    abd
-    *** Failers
-    axyzd
-    abc
-
-/a[b-d]e/
-    ace
-
-/a[b-d]/
-    aac
-
-/a[-b]/
-    a-
-
-/a[b-]/
-    a-
-
-/a]/
-    a]
-
-/a[]]b/
-    a]b
-
-/a[^bc]d/
-    aed
-    *** Failers
-    abd
-    abd
-
-/a[^-b]c/
-    adc
-
-/a[^]b]c/
-    adc
-    *** Failers
-    a-c
-    a]c
-
-/\ba\b/
-    a-
-    -a
-    -a-
-
-/\by\b/
-    *** Failers
-    xy
-    yz
-    xyz
-
-/\Ba\B/
-    *** Failers
-    a-
-    -a
-    -a-
-
-/\By\b/
-    xy
-
-/\by\B/
-    yz
-
-/\By\B/
-    xyz
-
-/\w/
-    a
-
-/\W/
-    -
-    *** Failers
-    -
-    a
-
-/a\sb/
-    a b
-
-/a\Sb/
-    a-b
-    *** Failers
-    a-b
-    a b
-
-/\d/
-    1
-
-/\D/
-    -
-    *** Failers
-    -
-    1
-
-/[\w]/
-    a
-
-/[\W]/
-    -
-    *** Failers
-    -
-    a
-
-/a[\s]b/
-    a b
-
-/a[\S]b/
-    a-b
-    *** Failers
-    a-b
-    a b
-
-/[\d]/
-    1
-
-/[\D]/
-    -
-    *** Failers
-    -
-    1
-
-/ab|cd/
-    abc
-    abcd
-
-/()ef/
-    def
-
-/$b/
-
-/a\(b/
-    a(b
-
-/a\(*b/
-    ab
-    a((b
-
-/a\\b/
-    a\b
-
-/((a))/
-    abc
-
-/(a)b(c)/
-    abc
-
-/a+b+c/
-    aabbabc
-
-/a{1,}b{1,}c/
-    aabbabc
-
-/a.+?c/
-    abcabc
-
-/(a+|b)*/
-    ab
-
-/(a+|b){0,}/
-    ab
-
-/(a+|b)+/
-    ab
-
-/(a+|b){1,}/
-    ab
-
-/(a+|b)?/
-    ab
-
-/(a+|b){0,1}/
-    ab
-
-/[^ab]*/
-    cde
-
-/abc/
-    *** Failers
-    b
-    
-
-/a*/
-    
-
-/([abc])*d/
-    abbbcd
-
-/([abc])*bcd/
-    abcd
-
-/a|b|c|d|e/
-    e
-
-/(a|b|c|d|e)f/
-    ef
-
-/abcd*efg/
-    abcdefg
-
-/ab*/
-    xabyabbbz
-    xayabbbz
-
-/(ab|cd)e/
-    abcde
-
-/[abhgefdc]ij/
-    hij
-
-/^(ab|cd)e/
-
-/(abc|)ef/
-    abcdef
-
-/(a|b)c*d/
-    abcd
-
-/(ab|ab*)bc/
-    abc
-
-/a([bc]*)c*/
-    abc
-
-/a([bc]*)(c*d)/
-    abcd
-
-/a([bc]+)(c*d)/
-    abcd
-
-/a([bc]*)(c+d)/
-    abcd
-
-/a[bcd]*dcdcde/
-    adcdcde
-
-/a[bcd]+dcdcde/
-    *** Failers
-    abcde
-    adcdcde
-
-/(ab|a)b*c/
-    abc
-
-/((a)(b)c)(d)/
-    abcd
-
-/[a-zA-Z_][a-zA-Z0-9_]*/
-    alpha
-
-/^a(bc+|b[eh])g|.h$/
-    abh
-
-/(bc+d$|ef*g.|h?i(j|k))/
-    effgz
-    ij
-    reffgz
-    *** Failers
-    effg
-    bcdd
-
-/((((((((((a))))))))))/
-    a
-
-/(((((((((a)))))))))/
-    a
-
-/multiple words of text/
-    *** Failers
-    aa
-    uh-uh
-
-/multiple words/
-    multiple words, yeah
-
-/(.*)c(.*)/
-    abcde
-
-/\((.*), (.*)\)/
-    (a, b)
-
-/[k]/
-
-/abcd/
-    abcd
-
-/a(bc)d/
-    abcd
-
-/a[-]?c/
-    ac
-
-/abc/i
-    ABC
-    XABCY
-    ABABC
-    *** Failers
-    aaxabxbaxbbx
-    XBC
-    AXC
-    ABX
-
-/ab*c/i
-    ABC
-
-/ab*bc/i
-    ABC
-    ABBC
-
-/ab*?bc/i
-    ABBBBC
-
-/ab{0,}?bc/i
-    ABBBBC
-
-/ab+?bc/i
-    ABBC
-
-/ab+bc/i
-    *** Failers
-    ABC
-    ABQ
-
-/ab{1,}bc/i
-
-/ab+bc/i
-    ABBBBC
-
-/ab{1,}?bc/i
-    ABBBBC
-
-/ab{1,3}?bc/i
-    ABBBBC
-
-/ab{3,4}?bc/i
-    ABBBBC
-
-/ab{4,5}?bc/i
-    *** Failers
-    ABQ
-    ABBBBC
-
-/ab??bc/i
-    ABBC
-    ABC
-
-/ab{0,1}?bc/i
-    ABC
-
-/ab??bc/i
-
-/ab??c/i
-    ABC
-
-/ab{0,1}?c/i
-    ABC
-
-/^abc$/i
-    ABC
-    *** Failers
-    ABBBBC
-    ABCC
-
-/^abc/i
-    ABCC
-
-/^abc$/i
-
-/abc$/i
-    AABC
-
-/^/i
-    ABC
-
-/$/i
-    ABC
-
-/a.c/i
-    ABC
-    AXC
-
-/a.*?c/i
-    AXYZC
-
-/a.*c/i
-    *** Failers
-    AABC
-    AXYZD
-
-/a[bc]d/i
-    ABD
-
-/a[b-d]e/i
-    ACE
-    *** Failers
-    ABC
-    ABD
-
-/a[b-d]/i
-    AAC
-
-/a[-b]/i
-    A-
-
-/a[b-]/i
-    A-
-
-/a]/i
-    A]
-
-/a[]]b/i
-    A]B
-
-/a[^bc]d/i
-    AED
-
-/a[^-b]c/i
-    ADC
-    *** Failers
-    ABD
-    A-C
-
-/a[^]b]c/i
-    ADC
-
-/ab|cd/i
-    ABC
-    ABCD
-
-/()ef/i
-    DEF
-
-/$b/i
-    *** Failers
-    A]C
-    B
-
-/a\(b/i
-    A(B
-
-/a\(*b/i
-    AB
-    A((B
-
-/a\\b/i
-    A\B
-
-/((a))/i
-    ABC
-
-/(a)b(c)/i
-    ABC
-
-/a+b+c/i
-    AABBABC
-
-/a{1,}b{1,}c/i
-    AABBABC
-
-/a.+?c/i
-    ABCABC
-
-/a.*?c/i
-    ABCABC
-
-/a.{0,5}?c/i
-    ABCABC
-
-/(a+|b)*/i
-    AB
-
-/(a+|b){0,}/i
-    AB
-
-/(a+|b)+/i
-    AB
-
-/(a+|b){1,}/i
-    AB
-
-/(a+|b)?/i
-    AB
-
-/(a+|b){0,1}/i
-    AB
-
-/(a+|b){0,1}?/i
-    AB
-
-/[^ab]*/i
-    CDE
-
-/abc/i
-
-/a*/i
-    
-
-/([abc])*d/i
-    ABBBCD
-
-/([abc])*bcd/i
-    ABCD
-
-/a|b|c|d|e/i
-    E
-
-/(a|b|c|d|e)f/i
-    EF
-
-/abcd*efg/i
-    ABCDEFG
-
-/ab*/i
-    XABYABBBZ
-    XAYABBBZ
-
-/(ab|cd)e/i
-    ABCDE
-
-/[abhgefdc]ij/i
-    HIJ
-
-/^(ab|cd)e/i
-    ABCDE
-
-/(abc|)ef/i
-    ABCDEF
-
-/(a|b)c*d/i
-    ABCD
-
-/(ab|ab*)bc/i
-    ABC
-
-/a([bc]*)c*/i
-    ABC
-
-/a([bc]*)(c*d)/i
-    ABCD
-
-/a([bc]+)(c*d)/i
-    ABCD
-
-/a([bc]*)(c+d)/i
-    ABCD
-
-/a[bcd]*dcdcde/i
-    ADCDCDE
-
-/a[bcd]+dcdcde/i
-
-/(ab|a)b*c/i
-    ABC
-
-/((a)(b)c)(d)/i
-    ABCD
-
-/[a-zA-Z_][a-zA-Z0-9_]*/i
-    ALPHA
-
-/^a(bc+|b[eh])g|.h$/i
-    ABH
-
-/(bc+d$|ef*g.|h?i(j|k))/i
-    EFFGZ
-    IJ
-    REFFGZ
-    *** Failers
-    ADCDCDE
-    EFFG
-    BCDD
-
-/((((((((((a))))))))))/i
-    A
-
-/(((((((((a)))))))))/i
-    A
-
-/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
-    A
-
-/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
-    C
-
-/multiple words of text/i
-    *** Failers
-    AA
-    UH-UH
-
-/multiple words/i
-    MULTIPLE WORDS, YEAH
-
-/(.*)c(.*)/i
-    ABCDE
-
-/\((.*), (.*)\)/i
-    (A, B)
-
-/[k]/i
-
-/abcd/i
-    ABCD
-
-/a(bc)d/i
-    ABCD
-
-/a[-]?c/i
-    AC
-
-/a(?!b)./
-    abad
-
-/a(?=d)./
-    abad
-
-/a(?=c|d)./
-    abad
-
-/a(?:b|c|d)(.)/
-    ace
-
-/a(?:b|c|d)*(.)/
-    ace
-
-/a(?:b|c|d)+?(.)/
-    ace
-    acdbcdbe
-
-/a(?:b|c|d)+(.)/
-    acdbcdbe
-
-/a(?:b|c|d){2}(.)/
-    acdbcdbe
-
-/a(?:b|c|d){4,5}(.)/
-    acdbcdbe
-
-/a(?:b|c|d){4,5}?(.)/
-    acdbcdbe
-
-/((foo)|(bar))*/
-    foobar
-
-/a(?:b|c|d){6,7}(.)/
-    acdbcdbe
-
-/a(?:b|c|d){6,7}?(.)/
-    acdbcdbe
-
-/a(?:b|c|d){5,6}(.)/
-    acdbcdbe
-
-/a(?:b|c|d){5,6}?(.)/
-    acdbcdbe
-
-/a(?:b|c|d){5,7}(.)/
-    acdbcdbe
-
-/a(?:b|c|d){5,7}?(.)/
-    acdbcdbe
-
-/a(?:b|(c|e){1,2}?|d)+?(.)/
-    ace
-
-/^(.+)?B/
-    AB
-
-/^([^a-z])|(\^)$/
-    .
-
-/^[<>]&/
-    <&OUT
-
-/(?:(f)(o)(o)|(b)(a)(r))*/
-    foobar
-
-/(?<=a)b/
-    ab
-    *** Failers
-    cb
-    b
-
-/(?<!c)b/
-    ab
-    b
-    b
-
-/(?:..)*a/
-    aba
-
-/(?:..)*?a/
-    aba
-
-/^(){3,5}/
-    abc
-
-/^(a+)*ax/
-    aax
-
-/^((a|b)+)*ax/
-    aax
-
-/^((a|bc)+)*ax/
-    aax
-
-/(a|x)*ab/
-    cab
-
-/(a)*ab/
-    cab
-
-/(?:(?i)a)b/
-    ab
-
-/((?i)a)b/
-    ab
-
-/(?:(?i)a)b/
-    Ab
-
-/((?i)a)b/
-    Ab
-
-/(?:(?i)a)b/
-    *** Failers
-    cb
-    aB
-
-/((?i)a)b/
-
-/(?i:a)b/
-    ab
-
-/((?i:a))b/
-    ab
-
-/(?i:a)b/
-    Ab
-
-/((?i:a))b/
-    Ab
-
-/(?i:a)b/
-    *** Failers
-    aB
-    aB
-
-/((?i:a))b/
-
-/(?:(?-i)a)b/i
-    ab
-
-/((?-i)a)b/i
-    ab
-
-/(?:(?-i)a)b/i
-    aB
-
-/((?-i)a)b/i
-    aB
-
-/(?:(?-i)a)b/i
-    *** Failers
-    aB
-    Ab
-
-/((?-i)a)b/i
-
-/(?:(?-i)a)b/i
-    aB
-
-/((?-i)a)b/i
-    aB
-
-/(?:(?-i)a)b/i
-    *** Failers
-    Ab
-    AB
-
-/((?-i)a)b/i
-
-/(?-i:a)b/i
-    ab
-
-/((?-i:a))b/i
-    ab
-
-/(?-i:a)b/i
-    aB
-
-/((?-i:a))b/i
-    aB
-
-/(?-i:a)b/i
-    *** Failers
-    AB
-    Ab
-
-/((?-i:a))b/i
-
-/(?-i:a)b/i
-    aB
-
-/((?-i:a))b/i
-    aB
-
-/(?-i:a)b/i
-    *** Failers
-    Ab
-    AB
-
-/((?-i:a))b/i
-
-/((?-i:a.))b/i
-    *** Failers
-    AB
-    a\nB
-
-/((?s-i:a.))b/i
-    a\nB
-
-/(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
-    cabbbb
-
-/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
-    caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
-
-/foo\w*\d{4}baz/
-    foobar1234baz
-
-/x(~~)*(?:(?:F)?)?/
-    x~~
-
-/^a(?#xxx){3}c/
-    aaac
-
-/^a (?#xxx) (?#yyy) {3}c/x
-    aaac
-
-/(?<![cd])b/
-    *** Failers
-    B\nB
-    dbcb
-
-/(?<![cd])[ab]/
-    dbaacb
-
-/(?<!(c|d))b/
-
-/(?<!(c|d))[ab]/
-    dbaacb
-
-/(?<!cd)[ab]/
-    cdaccb
-
-/^(?:a?b?)*$/
-    *** Failers
-    dbcb
-    a--
-
-/((?s)^a(.))((?m)^b$)/
-    a\nb\nc\n
-
-/((?m)^b$)/
-    a\nb\nc\n
-
-/(?m)^b/
-    a\nb\n
-
-/(?m)^(b)/
-    a\nb\n
-
-/((?m)^b)/
-    a\nb\n
-
-/\n((?m)^b)/
-    a\nb\n
-
-/((?s).)c(?!.)/
-    a\nb\nc\n
-    a\nb\nc\n
-
-/((?s)b.)c(?!.)/
-    a\nb\nc\n
-    a\nb\nc\n
-
-/^b/
-
-/()^b/
-    *** Failers
-    a\nb\nc\n
-    a\nb\nc\n
-
-/((?m)^b)/
-    a\nb\nc\n
-
-/(?(?!a)a|b)/
-
-/(?(?!a)b|a)/
-    a
-
-/(?(?=a)b|a)/
-    *** Failers
-    a
-    a
-
-/(?(?=a)a|b)/
-    a
-
-/(\w+:)+/
-    one:
-
-/$(?<=^(a))/
-    a
-
-/([\w:]+::)?(\w+)$/
-    abcd
-    xy:z:::abcd
-
-/^[^bcd]*(c+)/
-    aexycd
-
-/(a*)b+/
-    caab
-
-/([\w:]+::)?(\w+)$/
-    abcd
-    xy:z:::abcd
-    *** Failers
-    abcd:
-    abcd:
-
-/^[^bcd]*(c+)/
-    aexycd
-
-/(>a+)ab/
-
-/(?>a+)b/
-    aaab
-
-/([[:]+)/
-    a:[b]:
-
-/([[=]+)/
-    a=[b]=
-
-/([[.]+)/
-    a.[b].
-
-/((?>a+)b)/
-    aaab
-
-/(?>(a+))b/
-    aaab
-
-/((?>[^()]+)|\([^()]*\))+/
-    ((abc(ade)ufh()()x
-
-/a\Z/
-    *** Failers
-    aaab
-    a\nb\n
-
-/b\Z/
-    a\nb\n
-
-/b\z/
-
-/b\Z/
-    a\nb
-
-/b\z/
-    a\nb
-    *** Failers
-    
-/(?>.*)(?<=(abcd|wxyz))/
-    alphabetabcd
-    endingwxyz
-    *** Failers
-    a rather long string that doesn't end with one of them
-
-/word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
-    word cat dog elephant mussel cow horse canary baboon snake shark otherword
-    word cat dog elephant mussel cow horse canary baboon snake shark
-  
-/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
-
-/(?<=\d{3}(?!999))foo/
-    999foo
-    123999foo 
-    *** Failers
-    123abcfoo
-    
-/(?<=(?!...999)\d{3})foo/
-    999foo
-    123999foo 
-    *** Failers
-    123abcfoo
-
-/(?<=\d{3}(?!999)...)foo/
-    123abcfoo
-    123456foo 
-    *** Failers
-    123999foo  
-    
-/(?<=\d{3}...)(?<!999)foo/
-    123abcfoo   
-    123456foo 
-    *** Failers
-    123999foo  
-
-/((Z)+|A)*/
-    ZABCDEFG
-
-/(Z()|A)*/
-    ZABCDEFG
-
-/(Z(())|A)*/
-    ZABCDEFG
-
-/((?>Z)+|A)*/
-    ZABCDEFG
-
-/((?>)+|A)*/
-    ZABCDEFG
-
-/a*/g
-    abbab
-
-/^[a-\d]/
-    abcde
-    -things
-    0digit
-    *** Failers
-    bcdef    
-
-/^[\d-a]/
-    abcde
-    -things
-    0digit
-    *** Failers
-    bcdef    
-    
-/[[:space:]]+/
-    > \x09\x0a\x0c\x0d\x0b<
-     
-/[[:blank:]]+/
-    > \x09\x0a\x0c\x0d\x0b<
-     
-/[\s]+/
-    > \x09\x0a\x0c\x0d\x0b<
-     
-/\s+/
-    > \x09\x0a\x0c\x0d\x0b<
-     
-/a\vb/x
-    ab
-
-/(?!\A)x/m
-  a\nxb\n
-
-/(?!^)x/m
-  a\nxb\n
-
-/abc\Qabc\Eabc/
-    abcabcabc
-    
-/abc\Q(*+|\Eabc/
-    abc(*+|abc 
-
-/   abc\Q abc\Eabc/x
-    abc abcabc
-    *** Failers
-    abcabcabc  
-    
-/abc#comment
-    \Q#not comment
-    literal\E/x
-    abc#not comment\n    literal     
-
-/abc#comment
-    \Q#not comment
-    literal/x
-    abc#not comment\n    literal     
-
-/abc#comment
-    \Q#not comment
-    literal\E #more comment
-    /x
-    abc#not comment\n    literal     
-
-/abc#comment
-    \Q#not comment
-    literal\E #more comment/x
-    abc#not comment\n    literal     
-
-/\Qabc\$xyz\E/
-    abc\\\$xyz
-
-/\Qabc\E\$\Qxyz\E/
-    abc\$xyz
-
-/\Gabc/
-    abc
-    *** Failers
-    xyzabc  
-
-/\Gabc./g
-    abc1abc2xyzabc3
-
-/abc./g
-    abc1abc2xyzabc3 
-
-/a(?x: b c )d/
-    XabcdY
-    *** Failers 
-    Xa b c d Y 
-
-/((?x)x y z | a b c)/
-    XabcY
-    AxyzB 
-
-/(?i)AB(?-i)C/
-    XabCY
-    *** Failers
-    XabcY  
-
-/((?i)AB(?-i)C|D)E/
-    abCE
-    DE
-    *** Failers
-    abcE
-    abCe  
-    dE
-    De    
-
-/[z\Qa-d]\E]/
-    z
-    a
-    -
-    d
-    ] 
-    *** Failers
-    b     
-
-/[\z\C]/
-    z
-    C 
-    
-/\M/
-    M 
-    
-/(a+)*b/
-    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
-    
-/(?i)reg(?:ul(?:[aä]|ae)r|ex)/
-    REGular
-    regulaer
-    Regex  
-    regulär 
-
-/Åæåä[à-ÿÀ-ß]+/
-    Åæåäà
-    Åæåäÿ
-    ÅæåäÀ
-    Åæåäß
-
-/(?<=Z)X./
-    \x84XAZXB
-
-/^(?(2)a|(1)(2))+$/
-    123a
-
-/(?<=a|bbbb)c/
-    ac
-    bbbbc
-
-/abc/>testsavedregex
-<testsavedregex
-    abc
-    *** Failers
-    bca
-    
-/abc/F>testsavedregex
-<testsavedregex
-    abc
-    *** Failers
-    bca
-
-/(a|b)/S>testsavedregex
-<testsavedregex
-    abc
-    *** Failers
-    def  
-    
-/(a|b)/SF>testsavedregex
-<testsavedregex
-    abc
-    *** Failers
-    def  
-    
-/line\nbreak/
-    this is a line\nbreak
-    line one\nthis is a line\nbreak in the second line 
-
-/line\nbreak/f
-    this is a line\nbreak
-    ** Failers 
-    line one\nthis is a line\nbreak in the second line 
-
-/line\nbreak/mf
-    this is a line\nbreak
-    ** Failers 
-    line one\nthis is a line\nbreak in the second line 
-
-/1234/
-    123\P
-    a4\P\R
-
-/1234/
-    123\P
-    4\P\R
-
-/^/mg
-    a\nb\nc\n
-    \ 
-    
-/(?<=C\n)^/mg
-    A\nC\nC\n 
-
-/(?s)A?B/
-    AB
-    aB  
-
-/(?s)A*B/
-    AB
-    aB  
-
-/(?m)A?B/
-    AB
-    aB  
-
-/(?m)A*B/
-    AB
-    aB  
-
-/Content-Type\x3A[^\r\n]{6,}/
-    Content-Type:xxxxxyyy 
-
-/Content-Type\x3A[^\r\n]{6,}z/
-    Content-Type:xxxxxyyyz
-
-/Content-Type\x3A[^a]{6,}/
-    Content-Type:xxxyyy 
-
-/Content-Type\x3A[^a]{6,}z/
-    Content-Type:xxxyyyz
-
-/^abc/m
-    xyz\nabc
-    xyz\nabc\<lf>
-    xyz\r\nabc\<lf>
-    xyz\rabc\<cr>
-    xyz\r\nabc\<crlf>
-    ** Failers 
-    xyz\nabc\<cr>
-    xyz\r\nabc\<cr>
-    xyz\nabc\<crlf>
-    xyz\rabc\<crlf>
-    xyz\rabc\<lf>
-    
-/abc$/m<lf>
-    xyzabc
-    xyzabc\n 
-    xyzabc\npqr 
-    xyzabc\r\<cr> 
-    xyzabc\rpqr\<cr> 
-    xyzabc\r\n\<crlf> 
-    xyzabc\r\npqr\<crlf> 
-    ** Failers
-    xyzabc\r 
-    xyzabc\rpqr 
-    xyzabc\r\n 
-    xyzabc\r\npqr 
-    
-/^abc/m<cr>
-    xyz\rabcdef
-    xyz\nabcdef\<lf>
-    ** Failers  
-    xyz\nabcdef
-       
-/^abc/m<lf>
-    xyz\nabcdef
-    xyz\rabcdef\<cr>
-    ** Failers  
-    xyz\rabcdef
-       
-/^abc/m<crlf>
-    xyz\r\nabcdef
-    xyz\rabcdef\<cr>
-    ** Failers  
-    xyz\rabcdef
-    
-/.*/<lf>
-    abc\ndef
-    abc\rdef
-    abc\r\ndef
-    \<cr>abc\ndef
-    \<cr>abc\rdef
-    \<cr>abc\r\ndef
-    \<crlf>abc\ndef
-    \<crlf>abc\rdef
-    \<crlf>abc\r\ndef
-
-/\w+(.)(.)?def/s
-    abc\ndef
-    abc\rdef
-    abc\r\ndef
-
-/^\w+=.*(\\\n.*)*/
-    abc=xyz\\\npqr
-
-/^(a()*)*/
-    aaaa
-
-/^(?:a(?:(?:))*)*/
-    aaaa
-
-/^(a()+)+/
-    aaaa
-
-/^(?:a(?:(?:))+)+/
-    aaaa
-
-/(a|)*\d/
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
-
-/(?>a|)*\d/
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
-
-/(?:a|)*\d/
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
-
-/^a.b/<lf>
-    a\rb
-    a\nb\<cr> 
-    ** Failers
-    a\nb
-    a\nb\<any>
-    a\rb\<cr>   
-    a\rb\<any>   
-
-/^abc./mgx<any>
-    abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
-
-/abc.$/mgx<any>
-    abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
-
-/^a\Rb/<bsr_unicode>
-    a\nb
-    a\rb
-    a\r\nb
-    a\x0bb
-    a\x0cb
-    a\x85b   
-    ** Failers
-    a\n\rb    
-
-/^a\R*b/<bsr_unicode>
-    ab
-    a\nb
-    a\rb
-    a\r\nb
-    a\x0bb
-    a\x0cb
-    a\x85b   
-    a\n\rb    
-    a\n\r\x85\x0cb 
-
-/^a\R+b/<bsr_unicode>
-    a\nb
-    a\rb
-    a\r\nb
-    a\x0bb
-    a\x0cb
-    a\x85b   
-    a\n\rb    
-    a\n\r\x85\x0cb 
-    ** Failers
-    ab  
-    
-/^a\R{1,3}b/<bsr_unicode>
-    a\nb
-    a\n\rb
-    a\n\r\x85b
-    a\r\n\r\nb 
-    a\r\n\r\n\r\nb 
-    a\n\r\n\rb
-    a\n\n\r\nb 
-    ** Failers
-    a\n\n\n\rb
-    a\r
-
-/^a[\R]b/<bsr_unicode>
-    aRb
-    ** Failers
-    a\nb  
-
-/.+foo/
-    afoo
-    ** Failers 
-    \r\nfoo 
-    \nfoo 
-
-/.+foo/<crlf>
-    afoo
-    \nfoo 
-    ** Failers 
-    \r\nfoo 
-
-/.+foo/<any>
-    afoo
-    ** Failers 
-    \nfoo 
-    \r\nfoo 
-
-/.+foo/s
-    afoo
-    \r\nfoo 
-    \nfoo 
-
-/^$/mg<any>
-    abc\r\rxyz
-    abc\n\rxyz  
-    ** Failers 
-    abc\r\nxyz
-
-/^X/m
-    XABC
-    ** Failers 
-    XABC\B
-
-/(?m)^$/<any>g+
-    abc\r\n\r\n
-
-/(?m)^$|^\r\n/<any>g+ 
-    abc\r\n\r\n
-    
-/(?m)$/<any>g+ 
-    abc\r\n\r\n
-
-/(?|(abc)|(xyz))/
-   >abc<
-   >xyz< 
-
-/(x)(?|(abc)|(xyz))(x)/
-    xabcx
-    xxyzx 
-
-/(x)(?|(abc)(pqr)|(xyz))(x)/
-    xabcpqrx
-    xxyzx 
-
-/(?|(abc)|(xyz))(?1)/
-    abcabc
-    xyzabc 
-    ** Failers 
-    xyzxyz 
-/\H\h\V\v/
-    X X\x0a
-    X\x09X\x0b
-    ** Failers
-    \xa0 X\x0a   
-    
-/\H*\h+\V?\v{3,4}/ 
-    \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a
-    \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a
-    \x09\x20\xa0\x0a\x0b\x0c
-    ** Failers 
-    \x09\x20\xa0\x0a\x0b
-     
-/\H{3,4}/
-    XY  ABCDE
-    XY  PQR ST 
-    
-/.\h{3,4}./
-    XY  AB    PQRS
-
-/\h*X\h?\H+Y\H?Z/
-    >XNNNYZ
-    >  X NYQZ
-    ** Failers
-    >XYZ   
-    >  X NY Z
-
-/\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/
-    >XY\x0aZ\x0aA\x0bNN\x0c
-    >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
-
-/.+A/<crlf>
-    \r\nA
-    
-/\nA/<crlf>
-    \r\nA 
-
-/[\r\n]A/<crlf>
-    \r\nA 
-
-/(\r|\n)A/<crlf>
-    \r\nA 
-
-/a\Rb/I<bsr_anycrlf>
-    a\rb
-    a\nb
-    a\r\nb
-    ** Failers
-    a\x85b
-    a\x0bb     
-
-/a\Rb/I<bsr_unicode>
-    a\rb
-    a\nb
-    a\r\nb
-    a\x85b
-    a\x0bb     
-    ** Failers 
-    a\x85b\<bsr_anycrlf>
-    a\x0bb\<bsr_anycrlf>
-    
-/a\R?b/I<bsr_anycrlf>
-    a\rb
-    a\nb
-    a\r\nb
-    ** Failers
-    a\x85b
-    a\x0bb     
-
-/a\R?b/I<bsr_unicode>
-    a\rb
-    a\nb
-    a\r\nb
-    a\x85b
-    a\x0bb     
-    ** Failers 
-    a\x85b\<bsr_anycrlf>
-    a\x0bb\<bsr_anycrlf>
-    
-/a\R{2,4}b/I<bsr_anycrlf>
-    a\r\n\nb
-    a\n\r\rb
-    a\r\n\r\n\r\n\r\nb
-    ** Failers
-    a\x85\85b
-    a\x0b\0bb     
-
-/a\R{2,4}b/I<bsr_unicode>
-    a\r\rb
-    a\n\n\nb
-    a\r\n\n\r\rb
-    a\x85\85b
-    a\x0b\0bb     
-    ** Failers 
-    a\r\r\r\r\rb 
-    a\x85\85b\<bsr_anycrlf>
-    a\x0b\0bb\<bsr_anycrlf>
-    
-/a(?!)|\wbc/
-    abc 
-
-/a[]b/<JS>
-    ** Failers
-    ab
-
-/a[]+b/<JS>
-    ** Failers
-    ab 
-
-/a[]*+b/<JS>
-    ** Failers
-    ab 
-
-/a[^]b/<JS>
-    aXb
-    a\nb 
-    ** Failers
-    ab  
-    
-/a[^]+b/<JS> 
-    aXb
-    a\nX\nXb 
-    ** Failers
-    ab  
-
-/X$/E
-    X
-    ** Failers 
-    X\n 
-
-/X$/
-    X
-    X\n 
-
-/xyz/C
-  xyz 
-  abcxyz 
-  abcxyz\Y
-  ** Failers 
-  abc
-  abc\Y
-  abcxypqr  
-  abcxypqr\Y  
-  
-/(?C)ab/
-  ab
-  \C-ab
-  
-/ab/C
-  ab
-  \C-ab    
-
-/^"((?(?=[a])[^"])|b)*"$/C
-    "ab"
-    \C-"ab"
-
-/\d+X|9+Y/
-    ++++123999\P
-    ++++123999Y\P
-
-/Z(*F)/
-    Z\P
-    ZA\P 
-    
-/Z(?!)/
-    Z\P 
-    ZA\P 
-
-/dog(sbody)?/
-    dogs\P
-    dogs\P\P 
-    
-/dog(sbody)??/
-    dogs\P
-    dogs\P\P 
-
-/dog|dogsbody/
-    dogs\P
-    dogs\P\P 
-/dogsbody|dog/
-    dogs\P
-    dogs\P\P 
-
-/Z(*F)Q|ZXY/
-    Z\P
-    ZA\P 
-    X\P 
-
-/\bthe cat\b/
-    the cat\P
-    the cat\P\P
-
-/dog(sbody)?/
-    dogs\D\P
-    body\D\R
-
-/dog(sbody)?/
-    dogs\D\P\P
-    body\D\R
-
-/abc/
-   abc\P
-   abc\P\P
-
-/abc\K123/
-    xyzabc123pqr
-    
-/(?<=abc)123/
-    xyzabc123pqr 
-    xyzabc12\P
-    xyzabc12\P\P
-
-/\babc\b/
-    +++abc+++
-    +++ab\P
-    +++ab\P\P  
-
-/(?=C)/g+
-    ABCDECBA
-
-/(abc|def|xyz)/I
-    terhjk;abcdaadsfe
-    the quick xyz brown fox 
-    \Yterhjk;abcdaadsfe
-    \Ythe quick xyz brown fox 
-    ** Failers
-    thejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
-    \Ythejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
-
-/(abc|def|xyz)/SI
-    terhjk;abcdaadsfe
-    the quick xyz brown fox 
-    \Yterhjk;abcdaadsfe
-    \Ythe quick xyz brown fox 
-    ** Failers
-    thejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
-    \Ythejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
-
-/abcd*/+
-    xxxxabcd\P
-    xxxxabcd\P\P
-    dddxxx\R 
-    xxxxabcd\P\P
-    xxx\R 
-
-/abcd*/i
-    xxxxabcd\P
-    xxxxabcd\P\P
-    XXXXABCD\P
-    XXXXABCD\P\P
-
-/abc\d*/
-    xxxxabc1\P
-    xxxxabc1\P\P
-
-/abc[de]*/
-    xxxxabcde\P
-    xxxxabcde\P\P
-
-/(?:(?1)|B)(A(*F)|C)/
-    ABCD
-    CCD
-    ** Failers
-    CAD   
-
-/^(?:(?1)|B)(A(*F)|C)/
-    CCD
-    BCD 
-    ** Failers
-    ABCD
-    CAD
-    BAD    
-
-/-- End of testinput7 --/