tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

regextst.txt (189427B)


      1 # Copyright (C) 2016 and later: Unicode, Inc. and others.
      2 # License & terms of use: http://www.unicode.org/copyright.html
      3 # Copyright (c) 2001-2015 International Business Machines
      4 # Corporation and others. All Rights Reserved.
      5 #
      6 #  file:
      7 #
      8 #   ICU regular expression test cases.
      9 #
     10 #   format:   one test case per line,
     11 #               <test case>    =  <pattern>   <flags>  <match string>  [# comment]
     12 #               <pattern>      =  "<regular expression pattern>"
     13 #               <match string> =  "<tagged string>"
     14 #                                 the quotes on the pattern and match string can be " or ' or /
     15 #               <tagged string> = text, with the start and end of each
     16 #                                 capture group tagged with <n>...</n>.  The overall match,
     17 #                                 if any, is group 0, as in <0>matched text</0>
     18 #                                  A region can be specified with <r>...</r> tags.
     19 #                                 Standard ICU unescape will be applied, allowing \u, \U, etc. to appear.
     20 #
     21 #               <flags>         = any combination of
     22 #                                   i      case insensitive match
     23 #                                   x      free spacing and comments
     24 #                                   s      dot-matches-all mode
     25 #                                   m      multi-line mode.  
     26 #                                            ($ and ^ match at embedded new-lines)
     27 #                                   D      Unix Lines mode (only recognize 0x0a as new-line)
     28 #                                   Q      UREGEX_LITERAL flag.  Entire pattern is literal string.
     29 #                                   v      If icu configured without break iteration, this
     30 #                                          regex test pattern should not compile.
     31 #                                   e      set the UREGEX_ERROR_ON_UNKNOWN_ESCAPES flag
     32 #                                   d      dump the compiled pattern
     33 #                                   t      trace operation of match engine.
     34 #                                   2-9    a digit between 2 and 9, specifies the number of
     35 #                                          times to execute find().  The expected results are
     36 #                                          for the last find() in the sequence.
     37 #                                   G      Only check match / no match.  Do not check capture groups.
     38 #                                   E      Pattern compilation error expected
     39 #                                   L      Use LookingAt() rather than find()
     40 #                                   M      Use matches() rather than find().
     41 #
     42 #                                   a      Use non-Anchoring Bounds.
     43 #                                   b      Use Transparent Bounds.
     44 #                                          The a and b options only make a difference if
     45 #                                          a <r>region</r> has been specified in the string.
     46 #                                   z|Z    hitEnd was expected(z) or not expected (Z).
     47 #                                          With neither, hitEnd is not checked.
     48 #                                   y|Y    Require End expected(y) or not expected (Y).
     49 #
     50 #                                 White space must be present between the flags and the match string.
     51 #
     52 
     53 # Look-ahead expressions
     54 #
     55 "(?!0{5})(\d{5})"              "<0><1>00001</1></0>zzzz"
     56 "(?!0{5})(\d{5})z"             "<0><1>00001</1>z</0>zzz"
     57 "(?!0{5})(\d{5})(?!y)"         "<0><1>00001</1></0>zzzz"
     58 "abc(?=def)"                   "<0>abc</0>def"
     59 "(.*)(?=c)"                    "<0><1>ab</1></0>cdef"
     60 
     61 "(?:.*)(?=c)"                  "<r>ab</r>cdef"
     62 "(?:.*)(?=c)"             b    "<r><0>ab</0></r>cdef"      # transparent bounds
     63 "(?:.*)(?=c)"             bM   "<r><0>ab</0></r>cdef"      # transparent bounds
     64 
     65 "(?:.*)(?=(c))"           b    "<0>ab</0><1>c</1>def"      # Capture in look-ahead
     66 "(?=(.)\1\1)\1"                "abcc<0><1>d</1></0>ddefg"  # Backrefs to look-ahead capture
     67 
     68 ".(?!\p{L})"                   "abc<0>d</0> "              # Negated look-ahead
     69 ".(?!(\p{L}))"                 "abc<0>d</0> "              # Negated look-ahead, no capture
     70                                                           #   visible outside of look-ahead
     71 "and(?=roid)"            L     "<0>and</0>roid"
     72 "and(?=roid)"            M     "<r>and</r>roid"
     73 "and(?=roid)"            bM    "<r><0>and</0></r>roid"
     74 
     75 "and(?!roid)"            L     "<0>and</0>roix"
     76 "and(?!roid)"            L     "android"
     77 
     78 "and(?!roid)"            M     "<r><0>and</0></r>roid"     # Opaque bounds
     79 "and(?!roid)"            bM    "<r>and</r>roid"
     80 "and(?!roid)"            bM    "<r><0>and</0></r>roix"
     81 
     82 #
     83 # Negated Lookahead, various regions and region transparency
     84 #
     85 "abc(?!def)"                   "<0>abc</0>xyz"
     86 "abc(?!def)"                   "abcdef"
     87 "abc(?!def)"                   "<r><0>abc</0></r>def"
     88 "abc(?!def)"              b    "<r>abc</r>def"
     89 "abc(?!def)"              b    "<r><0>abc</0></r>xyz"
     90 
     91 #
     92 # Nested Lookahead / Behind
     93 #
     94 "one(?=(?:(?!<out>).)*</out>)"  "<out><0>one</0> stuff</out>"
     95 "one(?=(?:(?!<out>).)*</out>)"  "<out>one  <out></out>"
     96 
     97 # More nesting lookaround: pattern matches "qq" when not preceded by 'a' and followed by 'z'
     98 "(?<!a(?!...z))qq"               "<0>qq</0>c"
     99 "(?<!a(?!...z))qq"               "f<0>qq</0>c"
    100 "(?<!a(?!...z))qq"               "aqqz"
    101 
    102 # More nested lookaround: match any two chars preceded and followed by an upper case letter.
    103 # With gratuitous nesting of look-arounds and capture from the look-arounds.
    104 
    105 "(?=(?<=(\p{Lu})(?=..(\p{Lu})))).."     "<1>A</1><0>jk</0><2>B</2>"
    106 "(?=(?<=(\p{Lu})(?=..(\p{Lu})))).."     "ajkB"
    107 "(?=(?<=(\p{Lu})(?=..(\p{Lu})))).."     "Ajkb"
    108 
    109 # Nested lookaround cases from bug ICU-20564
    110 "(?<=(?<=((?=)){0}+))"         "<0></0>abc"
    111 "(?<=c(?<=c((?=c)){1}+))"      "c<0><1></1></0>cc"
    112 
    113 #
    114 #  Anchoring Bounds
    115 #
    116 "^def$"                        "abc<r><0>def</0></r>ghi"           # anchoring (default) bounds
    117 "^def$"                  a     "abc<r>def</r>ghi"                  # non-anchoring bounds
    118 "^def"                   a     "<r><0>def</0></r>ghi"              # non-anchoring bounds
    119 "def$"                   a     "abc<r><0>def</0></r>"              # non-anchoring bounds
    120 
    121 "^.*$"                   m     "<0>line 1</0>\n line 2"
    122 "^.*$"                   m2    "line 1\n<0> line 2</0>"
    123 "^.*$"                   m3    "line 1\n line 2"
    124 "^.*$"                   m     "li<r><0>ne </0></r>1\n line 2"     # anchoring bounds
    125 "^.*$"                   m2    "li<r>ne </r>1\n line 2"            # anchoring bounds
    126 "^.*$"                  am     "li<r>ne </r>1\n line 2"            # non-anchoring bounds
    127 "^.*$"                  am     "li\n<r><0>ne </0></r>\n1\n line 2" # non-anchoring bounds
    128 
    129 #
    130 #  HitEnd and RequireEnd for new-lines just before end-of-input
    131 #
    132 "xyz$"                  yz     "<0>xyz</0>\n"
    133 "xyz$"                  yz     "<0>xyz</0>\x{d}\x{a}"
    134 
    135 "xyz$"                 myz     "<0>xyz</0>"                        # multi-line mode
    136 "xyz$"                 mYZ     "<0>xyz</0>\n" 
    137 "xyz$"                 mYZ     "<0>xyz</0>\r\n"
    138 "xyz$"                 mYZ     "<0>xyz</0>\x{85}abcd"
    139 
    140 "xyz$"                  Yz     "xyz\nx"
    141 "xyz$"                  Yz     "xyza"
    142 "xyz$"                  yz     "<0>xyz</0>"
    143 
    144 #
    145 #  HitEnd 
    146 #
    147 "abcd"                  Lz      "a"
    148 "abcd"                  Lz      "ab"
    149 "abcd"                  Lz      "abc"
    150 "abcd"                  LZ      "<0>abcd</0>"
    151 "abcd"                  LZ      "<0>abcd</0>e"
    152 "abcd"                  LZ      "abcx"
    153 "abcd"                  LZ      "abx"
    154 "abcd"                  Lzi     "a"
    155 "abcd"                  Lzi     "ab"
    156 "abcd"                  Lzi     "abc"
    157 "abcd"                  LZi     "<0>abcd</0>"
    158 "abcd"                  LZi     "<0>abcd</0>e"
    159 "abcd"                  LZi     "abcx"
    160 "abcd"                  LZi     "abx"
    161 
    162 #
    163 #  All Unicode line endings recognized.
    164 #     0a, 0b, 0c, 0d, 0x85, 0x2028, 0x2029
    165 #     Multi-line and non-multiline mode take different paths, so repeated tests.
    166 #
    167 "^def$"                 mYZ    "abc\x{a}<0>def</0>\x{a}ghi"
    168 "^def$"                 mYZ    "abc\x{b}<0>def</0>\x{b}ghi"
    169 "^def$"                 mYZ    "abc\x{c}<0>def</0>\x{c}ghi"
    170 "^def$"                 mYZ    "abc\x{d}<0>def</0>\x{d}ghi"
    171 "^def$"                 mYZ    "abc\x{85}<0>def</0>\x{85}ghi"
    172 "^def$"                 mYZ    "abc\x{2028}<0>def</0>\x{2028}ghi"
    173 "^def$"                 mYZ    "abc\x{2029}<0>def</0>\x{2029}ghi"
    174 "^def$"                 mYZ    "abc\r\n<0>def</0>\r\nghi"
    175 
    176 "^def$"                 yz     "<0>def</0>\x{a}"
    177 "^def$"                 yz     "<0>def</0>\x{b}"
    178 "^def$"                 yz     "<0>def</0>\x{c}"
    179 "^def$"                 yz     "<0>def</0>\x{d}"
    180 "^def$"                 yz     "<0>def</0>\x{85}"
    181 "^def$"                 yz     "<0>def</0>\x{2028}"
    182 "^def$"                 yz     "<0>def</0>\x{2029}"
    183 "^def$"                 yz     "<0>def</0>\r\n"
    184 "^def$"                 yz     "<0>def</0>"
    185 
    186 
    187 "^def$"                       "<0>def</0>\x{2028"    #TODO: should be an error of some sort.
    188 
    189 #
    190 #  UNIX_LINES mode
    191 #
    192 "abc$"                 D      "<0>abc</0>\n"
    193 "abc$"                 D      "abc\r"
    194 "abc$"                 D      "abc\u0085"
    195 "a.b"                  D      "<0>a\rb</0>"
    196 "a.b"                  D      "a\nb"
    197 "(?d)abc$"                    "<0>abc</0>\n"
    198 "(?d)abc$"                    "abc\r"
    199 "abc$"                 mD     "<0>abc</0>\ndef"
    200 "abc$"                 mD     "abc\rdef"
    201 
    202 ".*def"                L      "abc\r def xyz"          # Normal mode, LookingAt() stops at \r
    203 ".*def"                DL     "<0>abc\r def</0> xyz"   # Unix Lines mode, \r not line end.
    204 ".*def"                DL     "abc\n def xyz"   
    205 
    206 "(?d)a.b"                     "a\nb"
    207 "(?d)a.b"                     "<0>a\rb</0>"
    208 
    209 "^abc"                 m      "xyz\r<0>abc</0>"
    210 "^abc"                 Dm     "xyz\rabc"
    211 "^abc"                 Dm     "xyz\n<0>abc</0>"
    212 
    213 
    214 
    215 # Capturing parens
    216 ".(..)."                       "<0>a<1>bc</1>d</0>"
    217 ".*\A( +hello)"               "<0><1>      hello</1></0>"
    218 "(hello)|(goodbye)"            "<0><1>hello</1></0>"
    219 "(hello)|(goodbye)"            "<0><2>goodbye</2></0>"
    220 "abc( +(  inner(X?) +)  xyz)"  "leading cruft <0>abc<1>     <2>  inner<3></3>    </2>  xyz</1></0> cruft"
    221 "\s*([ixsmdt]*)([:letter:]*)"  "<0>   <1>d</1><2></2></0>  "
    222 "(a|b)c*d"                     "a<0><1>b</1>cd</0>"
    223 
    224 # Non-capturing parens (?: stuff).   Groups, but does not capture.
    225 "(?:abc)*(tail)"               "<0>abcabcabc<1>tail</1></0>"
    226 
    227 # Non-greedy  *? quantifier
    228 ".*?(abc)"                     "<0>    abx    <1>abc</1></0> abc abc abc"
    229 ".*(abc)"                      "<0>    abx     abc abc abc <1>abc</1></0>"
    230 
    231 "((?:abc |xyz )*?)abc "        "<0><1>xyz </1>abc </0>abc abc "
    232 "((?:abc |xyz )*)abc "         "<0><1>xyz abc abc </1>abc </0>"
    233 
    234 # Non-greedy  +? quantifier
    235 "(a+?)(a*)"                    "<0><1>a</1><2>aaaaaaaaaaaa</2></0>"
    236 "(a+)(a*)"                     "<0><1>aaaaaaaaaaaaa</1><2></2></0>"
    237 
    238 "((ab)+?)((ab)*)"              "<0><1><2>ab</2></1><3>ababababab<4>ab</4></3></0>"
    239 "((ab)+)((ab)*)"               "<0><1>abababababab<2>ab</2></1><3></3></0>"
    240 
    241 # Non-greedy ?? quantifier
    242 "(ab)(ab)??(ab)??(ab)??(ab)??c"      "<0><1>ab</1><4>ab</4><5>ab</5>c</0>"
    243 
    244 # Unicode Properties as naked elements in a pattern
    245 "\p{Lu}+"                      "here we go ... <0>ABC</0> and no more."
    246 "(\p{L}+)(\P{L}*?) (\p{Zs}*)"  "7999<0><1>letters</1><2>4949%^&*(</2> <3>   </3></0>"
    247 
    248 # \w and \W
    249 "\w+"                          "  $%^&*( <0>hello123</0>%^&*("
    250 "\W+"                          "<0>  $%^&*( </0>hello123%^&*("
    251 
    252 # \A   match at beginning of input only.
    253 ".*\Ahello"                   "<0>hello</0> hello"
    254 ".*hello"                     "<0>hello hello</0>"
    255 ".*\Ahello"                    "stuff\nhello" # don't match after embedded new-line.
    256 
    257 # \b \B
    258 #
    259 ".*?\b(.).*"                   "<0>  $%^&*( <1>h</1>ello123%^&*()gxx</0>"
    260 "\ba\b"                        "-<0>a</0>"
    261 "\by\b"                        "xy"
    262 "[ \b]"                        "<0>b</0>"     # in a set, \b is a literal b.
    263 
    264 # Finds first chars of up to 5 words
    265 "(?:.*?\b(\w))?(?:.*?\b(\w))?(?:.*?\b(\w))?(?:.*?\b(\w))?(?:.*?\b(\w))?"   "<0><1>T</1>the <2>q</2>ick <3>b</3>rown <4>f</4></0>ox"
    266 
    267 "H.*?((?:\B.)+)"              "<0>H<1>ello</1></0> "
    268 ".*?((?:\B.)+).*?((?:\B.)+).*?((?:\B.)+)"    "<0>H<1>ello</1> <2>    </2>g<3>oodbye</3></0> "
    269 
    270 "(?:.*?\b(.))?(?:.*?\b(.))?(?:.*?\b(.))?(?:.*?\b(.))?(?:.*?\b(.))?.*"   "<0>   \u0301 \u0301<1>A</1>\u0302BC\u0303\u0304<2> </2>\u0305 \u0306<3>X</3>\u0307Y\u0308</0>"
    271 
    272 
    273 #
    274 #  Unicode word boundary mode
    275 #
    276 "(?w).*?\b"                      v   "<0></0>hello, world"
    277 "(?w).*?(\b.+?\b).*"             v   "<0><1>  </1>123.45   </0>"
    278 "(?w).*?(\b\d.*?\b).*"           v   "<0>  <1>123.45</1>   </0>"
    279 ".*?(\b.+?\b).*"                     "<0>  <1>123</1>.45   </0>"
    280 "(?w:.*?(\b\d.*?\b).*)"          v   "<0>  <1>123.45</1>   </0>"
    281 "(?w:.*?(\b.+?\b).*)"            v   "<0><1>don't</1>   </0>"
    282 "(?w:.+?(\b\S.+?\b).*)"          v   "<0>  <1>don't</1>   </0>"
    283 "(?w:(\b.+?)(\b.+?)(\b.+?)(\b.+?)(\b.+?)(\b.+?)(\b.+?).*)"     v "<0><1>.</1><2> </2><3>,</3><4>:</4><5>$</5><6>37,000.50</6><7> </7>   </0>"
    284 
    285 #
    286 #  Unicode word boundaries with Regions
    287 #
    288 "(?w).*?\b"                      v   "abc<r><0>def</0></r>ghi"
    289 "(?w).*?\b"                      v2  "abc<r>def<0></0></r>ghi"
    290 "(?w).*?\b"                      v3  "abc<r>def</r>ghi"
    291 #"(?w).*?\b"                      vb  "abc<r><0>def</0></r>ghi"    # TODO:  bug.  Ticket 6073
    292 #"(?w).*?\b"                      vb2 "abc<r>def</r>ghi"
    293 
    294 
    295 
    296 # . does not match new-lines
    297 "."                            "\u000a\u000d\u0085\u000c\u000b\u2028\u2029<0>X</0>\u000aY"
    298 "A."                           "A\u000a "# no match
    299 
    300 # \d for decimal digits
    301 "\d*"                          "<0>0123456789\u0660\u06F9\u0969\u0A66\u17E2\uFF10\U0001D7CE\U0001D7FF</0>non-digits"
    302 "\D+"                          "<0>non digits</0>"
    303 "\D*(\d*)(\D*)"                "<0>non-digits<1>3456666</1><2>more non digits</2></0>"
    304 
    305 # \Q...\E quote mode
    306 "hel\Qlo, worl\Ed"             "<0>hello, world</0>"
    307 "\Q$*^^(*)?\A\E(a*)"           "<0>$*^^(*)?\\A<1>aaaaaaaaaaaaaaa</1></0>"
    308 "[abc\Q]\r\E]+"                "<0>aaaccc]]]\\\\\\</0>\r..."   # \Q ... \E escape in a [set]
    309 
    310 # UREGEX_LITERAL - entire pattern is a literal string, no escapes recognized.
    311 #                  Note that data strings in test cases still get escape processing.
    312 "abc\an\r\E\\abcd\u0031bye"     Q  "lead<0>abc\\an\\r\\E\\\\abcd\\u0031bye</0>extra"
    313 "case insensitive \\ (l)iteral" Qi "stuff!! <0>cAsE InSenSiTiVE \\\\ (L)ITeral</0>"
    314 
    315 # \S and \s  space characters
    316 "\s+"                          "not_space<0> \t \r \n \u3000 \u2004 \u2028 \u2029</0>xyz"
    317 "(\S+).*?(\S+).*"              "<0><1>Not-spaces</1>   <2>more-non-spaces</2>  </0>"
    318 
    319 # \X  consume one Grapheme Cluster.
    320 "(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?"  v  "<0><1>A</1><2>B</2><3> </3><4>\r\n</4></0>"
    321 "(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?"  v  "<0><1>A\u0301</1><2>\n</2><3>\u0305</3><4>a\u0302\u0303\u0304</4></0>"
    322 "(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?"  v  "<0><1>\u1100\u1161\u11a8</1><2>\u115f\u11a2\u11f9</2></0>"
    323 "(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?"  v  "<0><1>\u1100\uac01</1><2>\uac02</2><3>\uac03\u11b0</3></0>"
    324 "(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?"  v  "<0><1>\u1100\u1101\uac02\u0301</1><2>\u1100</2></0>"
    325 # Regional indicator pairs are grapheme clusters
    326 "(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?"  v  "<0><1>\U0001f1e6\U0001f1e8</1><2>\U0001f1ea\U0001f1ff</2></0>"
    327 # Grapheme Break rule 9b:  Prepend x
    328 "(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?"	v  "<0><1>\U000111C2x</1></0>"
    329 
    330 # Grapheme clusters that straddle a match region. Matching is pinned to the region limits,
    331 # giving boundaries inside grapheme clusters
    332 "(\X)?(\X)?(\X)?"        v      "a\u0301<r><0><1>\u0301\u0301</1><2>z\u0302</2></0></r>\u0302\u0302"
    333 # Same as previous test case, but without the region limits.
    334 "(\X)?(\X)?(\X)?"        v      "<0><1>a\u0301\u0301\u0301</1><2>z\u0302\u0302\u0302</2></0>"
    335 
    336 # ^ matches only at beginning of line
    337 ".*^(Hello)"                   "<0><1>Hello</1></0> Hello Hello Hello Goodbye"
    338 ".*(Hello)"                    "<0>Hello Hello Hello <1>Hello</1></0> Goodbye"
    339 ".*^(Hello)"                   " Hello Hello Hello Hello Goodbye"# No Match
    340 
    341 # $ matches only at end of line, or before a newline preceding the end of line
    342 ".*?(Goodbye)$"           zy   "<0>Hello Goodbye Goodbye <1>Goodbye</1></0>"
    343 ".*?(Goodbye)"            ZY   "<0>Hello <1>Goodbye</1></0> Goodbye Goodbye"
    344 ".*?(Goodbye)$"           z    "Hello Goodbye> Goodbye Goodbye "# No Match
    345 
    346 ".*?(Goodbye)$"           zy   "<0>Hello Goodbye Goodbye <1>Goodbye</1></0>\n"
    347 ".*?(Goodbye)$"           zy   "<0>Hello Goodbye Goodbye <1>Goodbye</1></0>\n"
    348 ".*?(Goodbye)$"           zy   "<0>Hello Goodbye Goodbye <1>Goodbye</1></0>\r\n"
    349 ".*?(Goodbye)$"           z    "Hello Goodbye Goodbye Goodbye\n\n"# No Match
    350 
    351 # \Z matches at end of input, like $ with default flags.
    352 ".*?(Goodbye)\Z"          zy   "<0>Hello Goodbye Goodbye <1>Goodbye</1></0>"
    353 ".*?(Goodbye)"            ZY   "<0>Hello <1>Goodbye</1></0> Goodbye Goodbye"
    354 ".*?(Goodbye)\Z"          z    "Hello Goodbye> Goodbye Goodbye "# No Match
    355 "here$"                   z    "here\nthe end"# No Match
    356 
    357 ".*?(Goodbye)\Z"               "<0>Hello Goodbye Goodbye <1>Goodbye</1></0>\n"
    358 ".*?(Goodbye)\Z"               "<0>Hello Goodbye Goodbye <1>Goodbye</1></0>\n"
    359 ".*?(Goodbye)\Z"               "<0>Hello Goodbye Goodbye <1>Goodbye</1></0>\r\n"
    360 ".*?(Goodbye)\Z"               "Hello Goodbye Goodbye Goodbye\n\n"# No Match
    361 
    362 # \z matches only at the end of string.
    363 #    no special treatment of new lines.
    364 #    no dependencies on flag settings.
    365 ".*?(Goodbye)\z"          zy   "<0>Hello Goodbye Goodbye <1>Goodbye</1></0>"
    366 ".*?(Goodbye)\z"          z    "Hello Goodbye Goodbye Goodbye "# No Match
    367 "here$"                   z    "here\nthe end"# No Match
    368 
    369 ".*?(Goodbye)\z"          z    "Hello Goodbye Goodbye Goodbye\n"# No Match
    370 ".*?(Goodbye)\n\z"        zy   "<0>Hello Goodbye Goodbye <1>Goodbye</1>\n</0>"
    371 "abc\z|def"               ZY   "abc<0>def</0>"
    372 
    373 # (?# comment) doesn't muck up pattern
    374 "Hello (?# this is a comment) world"  "  <0>Hello  world</0>..."
    375 
    376 # Check some implementation corner cases base on the way literal strings are compiled.
    377 "A"                            "<0>A</0>"
    378 "AB"                           "<0>AB</0>ABABAB"
    379 "AB+"                          "<0>ABBB</0>A"
    380 "AB+"                          "<0>AB</0>ABAB"
    381 "ABC+"                         "<0>ABC</0>ABC"
    382 "ABC+"                         "<0>ABCCCC</0>ABC"
    383 "(?:ABC)+"                     "<0>ABCABCABC</0>D"
    384 "(?:ABC)DEF+"                  "<0>ABCDEFFF</0>D"
    385 "AB\.C\eD\u0666E"              "<0>AB.C\u001BD\u0666E</0>F"
    386 "ab\Bde"                        "<0>abde</0>"
    387 
    388 # loop breaking
    389 "(a?)*"                        "<0><1></1></0>xyz"
    390 "(a?)+"                        "<0><1></1></0>xyz"
    391 "^(?:a?b?)*$"	               "a--"
    392 "(x?)*xyz"                     "<0>xx<1></1>xyz</0>"    # Sligthtly weird, but correct.  The "last" time through (x?),
    393                                                        #   it matches the empty string.
    394 
    395 # Set expressions, basic operators and escapes work
    396 #
    397 "[\d]+"                        "<0>0123</0>abc/.,"
    398 "[^\d]+"                       "0123<0>abc/.,</0>"
    399 "[\D]+"                        "0123<0>abc/.,</0>"
    400 "[^\D]+"                       "<0>0123</0>abc/.,"
    401 
    402 "[\s]+"                        "<0> \t</0>abc/.,"
    403 "[^\s]+"                       " \t<0>abc/.,</0>"
    404 "[\S]+"                        " \t<0>abc/.,</0>"
    405 "[^\S]+"                       "<0> \t</0>abc/.,"
    406 
    407 "[\w]+"                        "<0>abc123</0> .,;"
    408 "[^\w]+"                       "abc123<0> .,;</0>"
    409 "[\W]+"                        "abc123<0> .,;</0>"
    410 "[^\W]+"                       "<0>abc123</0> .,;"
    411 
    412 "[\z]+"                        "abc<0>zzz</0>def"     # \z has no special meaning
    413 "[^\z]+"                       "<0>abc</0>zzzdef"
    414 "[\^]+"                        "abc<0>^^</0>"
    415 "[^\^]+"                       "<0>abc</0>^^"
    416 
    417 "[\u0041c]+"                   "<0>AcAc</0>def"
    418 "[\U00010002]+"                "<0>\ud800\udc02</0>\U00010003"
    419 "[^\U00010002]+"               "<0>Hello</0>\x{10002}"
    420 "[\x61b]+"                     "<0>abab</0>cde"
    421 #"[\x6z]+"                      "\x06"                  #TODO:  single hex digits should fail
    422 "[\x{9}\x{75}\x{6d6}\x{6ba6}\x{6146B}\x{10ffe3}]+"  "<0>\u0009\u0075\u06d6\u6ba6\U0006146B\U0010ffe3</0>abc"
    423 
    424 "[\N{LATIN CAPITAL LETTER TONE SIX}ab\N{VARIATION SELECTOR-70} ]+"       "x<0> \u0184\U000E0135 ab</0>c"
    425 "[\N{LATIN SMALL LETTER C}-\N{LATIN SMALL LETTER F}]+"    "ab<0>cdef</0>ghi"
    426 
    427 
    428 
    429 #
    430 #  [set expressions], check the precedence of '-', '&', '--', '&&'
    431 #      '-' and '&', for compatibility with ICU UnicodeSet, have the same
    432 #                   precedence as the implicit Union between adjacent items.
    433 #      '--' and '&&', for compatibility with Java, have lower precedence than
    434 #                   the implicit Union operations.  '--' and '&&' themselves
    435 #                   have the same precedence, and group left to right.
    436 #
    437 "[[a-m]-[f-w]p]+"              "<0>dep</0>fgwxyz"
    438 "[^[a-m]-[f-w]p]+"             "dep<0>fgwxyz</0>"
    439 
    440 "[[a-m]--[f-w]p]+"             "<0>de</0>pfgwxyz"
    441 "[^[a-m]--[f-w]p]+"            "de<0>pfgwxyz</0>"
    442 
    443 "[[a-m]&[e-s]w]+"              "<0>efmw</0>adnst"
    444 "[^[a-m]&[e-s]w]+"             "efmw<0>adnst</0>"
    445 
    446 "[[a-m]&[e-s]]+"              "<0>efm</0>adnst"
    447 
    448 
    449 
    450 # {min,max} iteration qualifier
    451 "A{3}BC"                       "<0>AAABC</0>"
    452 
    453 "(ABC){2,3}AB"                 "no matchAB"
    454 "(ABC){2,3}AB"                 "ABCAB"
    455 "(ABC){2,3}AB"                 "<0>ABC<1>ABC</1>AB</0>"
    456 "(ABC){2,3}AB"                 "<0>ABCABC<1>ABC</1>AB</0>"
    457 "(ABC){2,3}AB"                 "<0>ABCABC<1>ABC</1>AB</0>CAB"
    458 
    459 "(ABC){2}AB"                   "ABCAB"
    460 "(ABC){2}AB"                   "<0>ABC<1>ABC</1>AB</0>"
    461 "(ABC){2}AB"                   "<0>ABC<1>ABC</1>AB</0>CAB"
    462 "(ABC){2}AB"                   "<0>ABC<1>ABC</1>AB</0>CABCAB"
    463 
    464 "(ABC){2,}AB"                  "ABCAB"
    465 "(ABC){2,}AB"                  "<0>ABC<1>ABC</1>AB</0>"
    466 "(ABC){2,}AB"                  "<0>ABCABC<1>ABC</1>AB</0>"
    467 "(ABC){2,}AB"                  "<0>ABCABCABC<1>ABC</1>AB</0>"
    468 
    469 "X{0,0}ABC"                    "<0>ABC</0>"
    470 "X{0,1}ABC"                    "<0>ABC</0>"
    471 
    472 "(?:Hello(!{1,3}) there){1}"   "Hello there"
    473 "(?:Hello(!{1,3}) there){1}"   "<0>Hello<1>!</1> there</0>"
    474 "(?:Hello(!{1,3}) there){1}"   "<0>Hello<1>!!</1> there</0>"
    475 "(?:Hello(!{1,3}) there){1}"   "<0>Hello<1>!!!</1> there</0>"
    476 "(?:Hello(!{1,3}) there){1}"   "Hello!!!! there"
    477 
    478 # Nongreedy {min,max}? intervals
    479 "(ABC){2,3}?AB"                "no matchAB"
    480 "(ABC){2,3}?AB"                "ABCAB"
    481 "(ABC){2,3}?AB"                "<0>ABC<1>ABC</1>AB</0>"
    482 "(ABC){2,3}?AB"                "<0>ABC<1>ABC</1>AB</0>CAB"
    483 "(ABC){2,3}?AB"                "<0>ABC<1>ABC</1>AB</0>CABCAB"
    484 "(ABC){2,3}?AX"                "<0>ABCABC<1>ABC</1>AX</0>"
    485 "(ABC){2,3}?AX"                "ABC<0>ABCABC<1>ABC</1>AX</0>"
    486 
    487 # Possessive {min,max}+ intervals
    488 "(ABC){2,3}+ABC"               "ABCABCABC"
    489 "(ABC){1,2}+ABC"               "<0>ABC<1>ABC</1>ABC</0>"
    490 "(?:(.)\1){2,5}+."              "<0>aabbcc<1>d</1>de</0>x"
    491 
    492 
    493 # Atomic Grouping
    494 "(?>.*)abc"                    "abcabcabc"  # no match.  .* consumed entire string.
    495 "(?>(abc{2,4}?))(c*)"          "<0><1>abcc</1><2>ccc</2></0>ddd"
    496 "(\.\d\d(?>[1-9]?))\d+"        "1.625"
    497 "(\.\d\d(?>[1-9]?))\d+"        "1<0><1>.625</1>0</0>"
    498 
    499 # Possessive *+
    500 "(abc)*+a"                     "abcabcabc"
    501 "(abc)*+a"                     "<0>abc<1>abc</1>a</0>b"
    502 "(a*b)*+a"                     "<0><1>aaaab</1>a</0>aaa"
    503 
    504 # Possessive ?+
    505 "c?+ddd"                       "<0>cddd</0>"
    506 "c?+cddd"                      "cddd"
    507 "c?cddd"                       "<0>cddd</0>"
    508 
    509 # Back Reference
    510 "(?:ab(..)cd\1)*"              "<0>ab23cd23ab<1>ww</1>cdww</0>abxxcdyy"
    511 "ab(?:c|(d?))(\1)"             "<0>ab<1><2></2></1></0>c"
    512 "ab(?:c|(d?))(\1)"             "<0>ab<1>d</1><2>d</2></0>"
    513 "ab(?:c|(d?))(\1)"             "<0>ab<1></1><2></2></0>e"
    514 "ab(?:c|(d?))(\1)"             "<0>ab<1></1><2></2></0>"
    515 
    516 # Back References that hit/don't hit end
    517 "(abcd) \1"                z   "abcd abc"
    518 "(abcd) \1"                Z   "<0><1>abcd</1> abcd</0>"
    519 "(abcd) \1"                Z   "<0><1>abcd</1> abcd</0> "
    520 
    521 # Case Insensitive back references that hit/don't hit end.
    522 "(abcd) \1"                zi  "abcd abc"
    523 "(abcd) \1"                Zi  "<0><1>abcd</1> ABCD</0>"
    524 "(abcd) \1"                Zi  "<0><1>abcd</1> ABCD</0> "
    525 
    526 # Back references that hit/don't hit boundary limits.
    527 
    528 "(abcd) \1"                z   "<r>abcd abc</r>d "
    529 "(abcd) \1"                Z   "<r><0><1>abcd</1> abcd</0></r> "
    530 "(abcd) \1"                Z   "<r><0><1>abcd</1> abcd</0> </r>"
    531 
    532 "(abcd) \1"                zi  "<r>abcd abc</r>d "
    533 "(abcd) \1"                Zi  "<r><0><1>abcd</1> abcd</0></r> "
    534 "(abcd) \1"                Zi  "<r><0><1>abcd</1> abcd</0> </r>"
    535 
    536 # Back reference that fails match near the end of input without actually hitting the end.
    537 "(abcd) \1"                ZL  "abcd abd"
    538 "(abcd) \1"                ZLi "abcd abd"
    539 
    540 # Back reference to a zero-length match.  They are always a successful match.
    541 "ab(x?)cd(\1)ef"               "<0>ab<1></1>cd<2></2>ef</0>"
    542 "ab(x?)cd(\1)ef"            i  "<0>ab<1></1>cd<2></2>ef</0>"
    543 
    544 # Back refs to capture groups that didn't participate in the match.
    545 "ab(?:(c)|(d))\1"              "abde"
    546 "ab(?:(c)|(d))\1"              "<0>ab<1>c</1>c</0>e"
    547 "ab(?:(c)|(d))\1"            i "abde"
    548 "ab(?:(c)|(d))\1"            i "<0>ab<1>c</1>c</0>e"
    549 
    550 # Named back references
    551 "(?<one>abcd)\k<one>"          "<0><1>abcd</1>abcd</0>"
    552 "(no)?(?<one>abcd)\k<one>"     "<0><2>abcd</2>abcd</0>"
    553 
    554 "(?<a_1>...)"               E  "  "   # backref names are ascii letters & numbers only"
    555 "(?<1a>...)"                E  "  "   # backref names must begin with a letter"
    556 "(?<a>.)(?<a>.)"            E  "  "   # Repeated names are illegal.
    557 
    558 
    559 # Case Insensitive
    560 "aBc"                    i      "<0>ABC</0>"
    561 "a[^bc]d"                i      "ABD"
    562 '((((((((((a))))))))))\10' i    "<0><1><2><3><4><5><6><7><8><9><10>A</10></9></8></7></6></5></4></3></2></1>A</0>"
    563 
    564 "(?:(?i)a)b"                    "<0>Ab</0>"
    565 "ab(?i)cd"	                    "<0>abCd</0>"
    566 "ab$cd"                         "abcd"
    567 
    568 "ssl"                      i    "abc<0>ßl</0>xyz"
    569 "ssl"                      i    "abc<0>ẞl</0>xyz"
    570 "FIND"                     i    "can <0>find</0> ?"  # fi ligature, \ufb01
    571 "find"                      i    "can <0>FIND</0> ?"
    572 "ῧ"                        i    "xxx<0>ῧ</0>xxx"    # Composed char (match string) decomposes when case-folded (pattern)
    573 
    574 # White space handling
    575 "a b"                           "ab"
    576 "abc "                          "abc"
    577 "abc "                          "<0>abc </0>"
    578 "ab[cd e]z"                     "<0>ab z</0>"
    579 "ab\ c"                         "<0>ab c</0> "
    580 "ab c"                          "<0>ab c</0> "
    581 "ab c"                        x "ab c "
    582 "ab\ c"                       x "<0>ab c</0> "
    583 
    584 #
    585 # Pattern Flags
    586 #
    587 "(?u)abc"                       "<0>abc</0>"
    588 "(?-u)abc"                      "<0>abc</0>"
    589 
    590 #
    591 #  \c escapes  (Control-whatever)
    592 #
    593 "\cA"                           "<0>\u0001</0>"
    594 "\ca"                           "<0>\u0001</0>"
    595 "\c\x"                          "<0>\u001cx</0>"
    596 
    597 
    598 #Multi-line mode
    599 'b\s^'                        m "a\nb\n"
    600 "(?m)^abc$"                     "abc \n abc\n<0>abc</0>\nabc"
    601 "(?m)^abc$"                   2 "abc \n abc\nabc\n<0>abc</0>"
    602 "^abc$"                       2 "abc \n abc\nabc\nabc"
    603 
    604 # Empty and full range
    605 "[\u0000-\U0010ffff]+"          "<0>abc\u0000\uffff\U00010000\U0010ffffzz</0>"
    606 "[^\u0000-\U0010ffff]"          "abc\u0000\uffff\U00010000\U0010ffffzz"
    607 "[^a--a]+"                      "<0>abc\u0000\uffff\U00010000\U0010ffffzz</0>"
    608 
    609 # Free-spacing mode
    610 "a b c  # this is a comment"  x "<0>abc</0> "
    611 '^a (?#xxx) (?#yyy) {3}c'  x    "<0>aaac</0>"
    612 "a b c [x y z]"               x "abc "
    613 "a b c [x y z]"               x "a b c "
    614 "a b c [x y z]"               x "<0>abcx</0>yz"
    615 "a b c [x y z]"               x "<0>abcy</0>yz"
    616 
    617 #
    618 #  Look Behind
    619 #
    620 "(?<=a)b"	                   "a<0>b</0>"
    621 "(.*)(?<=[bc])"                "<0><1>abc</1></0>d"
    622 "(?<=(abc))def"                "<1>abc</1><0>def</0>"   # lookbehind precedes main match.
    623 "(?<=ab|abc)xyz"               "abwxyz"                 # ab matches, but not far enough.
    624 "(?<=abc)cde"                  "abcde"
    625 "(?<=abc|ab)cde"               "ab<0>cde</0>"
    626 "(?<=abc|ab)cde"               "abc<0>cde</0>"
    627 
    628 "(?<=bc?c?c?)cd"               "ab<0>cd</0>"
    629 "(?<=bc?c?c?)cd"               "abc<0>cd</0>"
    630 "(?<=bc?c?c?)cd"               "abcc<0>cd</0>"
    631 "(?<=bc?c?c?)cd"               "abccc<0>cd</0>"
    632 "(?<=bc?c?c?)cd"               "abcccccd"
    633 "(?<=bc?c?c?)c+d"              "ab<0>cccccd</0>"
    634 
    635 ".*(?<=: ?)(\w*)"                "<0>1:one  2: two 3:<1>three</1></0>   "
    636 
    637 #
    638 # Named Characters
    639 #
    640 "a\N{LATIN SMALL LETTER B}c"    "<0>abc</0>"
    641 "a\N{LATIN SMALL LETTER B}c"  i  "<0>abc</0>"
    642 "a\N{LATIN SMALL LETTER B}c"  i  "<0>aBc</0>"
    643 "a\N{LATIN SMALL LETTER B}c"     "aBc"
    644 
    645 "\N{FULL STOP}*"                 "<0>...</0>abc"
    646 
    647 "$"                              "abc<0></0>"
    648 
    649 #
    650 #  Optimizations of .* at end of patterns
    651 #
    652 "abc.*"                          "<0>abcdef</0>"
    653 "abc.*$"                         "<0>abcdef</0>"
    654 "abc(.*)"                        "<0>abc<1>def</1></0>"
    655 "abc(.*)"                        "<0>abc<1></1></0>"
    656 "abc.*"                          "<0>abc</0>\ndef"
    657 "abc.*"                     s    "<0>abc\ndef</0>"
    658 "abc.*$"                    s    "<0>abc\ndef</0>"
    659 "abc.*$"                         "abc\ndef"
    660 "abc.*$"                    m    "<0>abc</0>\ndef"
    661 "abc.*\Z"                   m    "abc\ndef"
    662 "abc.*\Z"                   sm   "<0>abc\ndef</0>"
    663 
    664 "abc*"                           "<0>abccc</0>d"
    665 "abc*$"                          "<0>abccc</0>"
    666 "ab(?:ab[xyz]\s)*"               "<0>ababy abx </0>abc"
    667 
    668 "(?:(abc)|a)(?:bc)+"             "<0>abc</0>"
    669 "(?:(abc)|a)(?:bc)*"             "<0><1>abc</1></0>"
    670 "^[+\-]?[0-9]*\.?[0-9]*"         "<0>123.456</0>"
    671 
    672 "ab.+yz"                         "<0>abc12345xyz</0>ttt"
    673 "ab.+yz"                    s    "<0>abc12345xyz</0>ttt"
    674 
    675 "ab.+yz"                         "abc123\n45xyzttt"
    676 "ab.+yz"                    s    "<0>abc12\n345xyz</0>ttt"
    677 
    678 "ab[0-9]+yz"                     "---abyz+++"
    679 "ab[0-9]+yz"                     "---<0>ab1yz</0>+++"
    680 "ab[0-9]+yz"                     "---<0>ab12yz</0>+++"
    681 "ab[0-9]+yz"                     "---<0>ab123456yz</0>+++"
    682 
    683 "ab([0-9]+|[A-Z]+)yz"            "---abyz+++"
    684 "ab([0-9]+|[A-Z]+)yz"            "---<0>ab<1>1</1>yz</0>+++"
    685 "ab([0-9]+|[A-Z]+)yz"            "---<0>ab<1>12</1>yz</0>+++"
    686 "ab([0-9]+|[A-Z]+)yz"            "---<0>ab<1>A</1>yz</0>+++"
    687 "ab([0-9]+|[A-Z]+)yz"            "---<0>ab<1>AB</1>yz</0>+++"
    688 "ab([0-9]+|[A-Z]+)yz"            "---<0>ab<1>ABCDE</1>yz</0>+++"
    689 
    690 #
    691 #  Hex format \x escaping
    692 #
    693 "ab\x63"                         "<0>abc</0>"
    694 "ab\x09w"                        "<0>ab\u0009w</0>"
    695 "ab\xabcdc"                      "<0>ab\u00abcdc</0>"
    696 "ab\x{abcd}c"                    "<0>ab\uabcdc</0>"
    697 "ab\x{101234}c"                  "<0>ab\U00101234c</0>"
    698 "abα"                            "<0>abα</0>"
    699 
    700 #
    701 #  Octal Escaping.   This conforms to Java conventions, not Perl.
    702 "\0101\00\03\073\0154\01442"      "<0>A\u0000\u0003\u003b\u006c\u0064\u0032</0>"
    703 "\0776"                          "<0>\u003f\u0036</0>"  # overflow, the 6 is literal.
    704 "\0376xyz"                       "<0>\u00fexyz</0>"
    705 "\08"                        E   "<0>\u00008</0>"
    706 "\0"                         E   "x"
    707 
    708 #
    709 #  \u Surrogate Pairs
    710 #
    711 "\ud800\udc00"                    "<0>\U00010000</0>"
    712 "\ud800\udc00*"                   "<0>\U00010000\U00010000\U00010000</0>\U00010001"
    713 "\ud800\ud800\udc00"              "<0>\ud800\U00010000</0>\U00010000\U00010000\U00010001"
    714 "(\ud800)(\udc00)"                "\U00010000"
    715 "\U00010001+"                     "<0>\U00010001\U00010001</0>\udc01"
    716 
    717 #
    718 # hitEnd with find()
    719 #
    720 "abc"                        Z    "aa<0>abc</0>  abcab"
    721 "abc"                       2Z    "aaabc  <0>abc</0>ab"
    722 "abc"                       3z    "aa>abc  abcab"
    723 
    724 #
    725 # \ escaping
    726 #
    727 "abc\jkl"                         "<0>abcjkl</0>"    # escape of a non-special letter is just itself.
    728 "abc[ \j]kl"                      "<0>abcjkl</0>"
    729 
    730 #
    731 # \R  all newline sequences.
    732 #
    733 "abc\Rxyz"                        "<0>abc\u000axyz</0>gh"
    734 "abc\Rxyz"                        "<0>abc\u000bxyz</0>gh"
    735 "abc\Rxyz"                        "<0>abc\u000cxyz</0>gh"
    736 "abc\Rxyz"                        "<0>abc\u000dxyz</0>gh"
    737 "abc\Rxyz"                        "<0>abc\u0085xyz</0>gh"
    738 "abc\Rxyz"                        "<0>abc\u2028xyz</0>gh"
    739 "abc\Rxyz"                        "<0>abc\u2029xyz</0>gh"
    740 "abc\Rxyz"                        "<0>abc\u000d\u000axyz</0>gh"
    741 
    742 "abc\R\nxyz"                      "abc\u000d\u000axyzgh"          # \R cannot match only the CR from a CR/LF sequence.
    743 "abc\r\nxyz"                      "<0>abc\u000d\u000axyz</0>gh"
    744 
    745 "abc\Rxyz"                        "abc\u0009xyz"                  # Assorted non-matches.
    746 "abc\Rxyz"                        "abc\u000exyz"
    747 "abc\Rxyz"                        "abc\u202axyz"
    748 
    749 # \v \V single character new line sequences.
    750 
    751 "abc\vxyz"                        "<0>abc\u000axyz</0>gh"
    752 "abc\vxyz"                        "<0>abc\u000bxyz</0>gh"
    753 "abc\vxyz"                        "<0>abc\u000cxyz</0>gh"
    754 "abc\vxyz"                        "<0>abc\u000dxyz</0>gh"
    755 "abc\vxyz"                        "<0>abc\u0085xyz</0>gh"
    756 "abc\vxyz"                        "<0>abc\u2028xyz</0>gh"
    757 "abc\vxyz"                        "<0>abc\u2029xyz</0>gh"
    758 "abc\vxyz"                        "abc\u000d\u000axyzgh"
    759 "abc\vxyz"                        "abc?xyzgh"
    760 
    761 "abc[\v]xyz"                      "<0>abc\u000axyz</0>gh"
    762 "abc[\v]xyz"                      "<0>abc\u000bxyz</0>gh"
    763 "abc[\v]xyz"                      "<0>abc\u000cxyz</0>gh"
    764 "abc[\v]xyz"                      "<0>abc\u000dxyz</0>gh"
    765 "abc[\v]xyz"                      "<0>abc\u0085xyz</0>gh"
    766 "abc[\v]xyz"                      "<0>abc\u2028xyz</0>gh"
    767 "abc[\v]xyz"                      "<0>abc\u2029xyz</0>gh"
    768 "abc[\v]xyz"                      "abc\u000d\u000axyzgh"
    769 "abc[\v]xyz"                      "abc?xyzgh"
    770 
    771 "abc\Vxyz"                        "abc\u000axyzgh"
    772 "abc\Vxyz"                        "abc\u000bxyzgh"
    773 "abc\Vxyz"                        "abc\u000cxyzgh"
    774 "abc\Vxyz"                        "abc\u000dxyzgh"
    775 "abc\Vxyz"                        "abc\u0085xyzgh"
    776 "abc\Vxyz"                        "abc\u2028xyzgh"
    777 "abc\Vxyz"                        "abc\u2029xyzgh"
    778 "abc\Vxyz"                        "abc\u000d\u000axyzgh"
    779 "abc\Vxyz"                        "<0>abc?xyz</0>gh"
    780 
    781 # \h \H horizontal white space. Defined as gc=space_separator plus ascii tab
    782 
    783 "abc\hxyz"                        "<0>abc xyz</0>gh"
    784 "abc\Hxyz"                        "abc xyzgh"
    785 "abc\hxyz"                        "<0>abc\u2003xyz</0>gh"
    786 "abc\Hxyz"                        "abc\u2003xyzgh"
    787 "abc\hxyz"                        "<0>abc\u0009xyz</0>gh"
    788 "abc\Hxyz"                        "abc\u0009xyzgh"
    789 "abc\hxyz"                        "abc?xyzgh"
    790 "abc\Hxyz"                        "<0>abc?xyz</0>gh"
    791 
    792 "abc[\h]xyz"                      "<0>abc xyz</0>gh"
    793 "abc[\H]xyz"                      "abc xyzgh"
    794 "abc[\h]xyz"                      "<0>abc\u2003xyz</0>gh"
    795 "abc[\H]xyz"                      "abc\u2003xyzgh"
    796 "abc[\h]xyz"                      "<0>abc\u0009xyz</0>gh"
    797 "abc[\H]xyz"                      "abc\u0009xyzgh"
    798 "abc[\h]xyz"                      "abc?xyzgh"
    799 "abc[\H]xyz"                      "<0>abc?xyz</0>gh"
    800 
    801 
    802 #
    803 # Bug xxxx
    804 #
    805 "(?:\-|(\-?\d+\d\d\d))?(?:\-|\-(\d\d))?(?:\-|\-(\d\d))?(T)?(?:(\d\d):(\d\d):(\d\d)(\.\d+)?)?(?:(?:((?:\+|\-)\d\d):(\d\d))|(Z))?"   MG  "<0>-1234-21-31T41:51:61.789+71:81</0>"
    806 
    807 
    808 #
    809 # A random, complex, meaningless pattern that should at least compile
    810 #
    811 "(?![^\<C\f\0146\0270\}&&[|\02-\x3E\}|X-\|]]{7,}+)[|\\\x98\<\?\u4FCFr\,\0025\}\004|\0025-\0521]|(?<![|\01-\u829E])|(?<!\p{Alpha})|^|(?-s:[^\x15\\\x24F\a\,\a\u97D8[\x38\a[\0224-\0306[^\0020-\u6A57]]]]??)(?xix:[^|\{\[\0367\t\e\x8C\{\[\074c\]V[|b\fu\r\0175\<\07f\066s[^D-\x5D]]])(?xx:^{5,}+)(?d)(?=^\D)|(?!\G)(?>\G)(?![^|\]\070\ne\{\t\[\053\?\\\x51\a\075\0023-\[&&[|\022-\xEA\00-\u41C2&&[^|a-\xCC&&[^\037\uECB3\u3D9A\x31\|\<b\0206\uF2EC\01m\,\ak\a\03&&\p{Punct}]]]])(?-dxs:[|\06-\07|\e-\x63&&[|Tp\u18A3\00\|\xE4\05\061\015\0116C|\r\{\}\006\xEA\0367\xC4\01\0042\0267\xBB\01T\}\0100\?[|\[-\u459B|\x23\x91\rF\0376[|\?-\x94\0113-\\\s]]]]{6}?)(?<=[^\t-\x42H\04\f\03\0172\?i\u97B6\e\f\uDAC2])(?=\B)(?>[^\016\r\{\,\uA29D\034\02[\02-\[|\t\056\uF599\x62\e\<\032\uF0AC\0026\0205Q\|\\\06\0164[|\057-\u7A98&&[\061-g|\|\0276\n\042\011\e\xE8\x64B\04\u6D0EDW^\p{Lower}]]]]?)(?<=[^\n\\\t\u8E13\,\0114\u656E\xA5\]&&[\03-\026|\uF39D\01\{i\u3BC2\u14FE]])(?<=[^|\uAE62\054H\|\}&&^\p{Space}])(?sxx)(?<=[\f\006\a\r\xB4]{1,5})|(?x-xd:^{5}+)()"  "<0></0>abc"
    812 
    813 
    814 #
    815 # Bug 3225
    816 
    817 "1|9"                             "<0>1</0>"
    818 "1|9"                             "<0>9</0>"
    819 "1*|9"                            "<0>1</0>"
    820 "1*|9"                            "<0></0>9"
    821 
    822 "(?:a|ac)d"                       "<0>acd</0>"
    823 "a|ac"                            "<0>a</0>c"
    824 
    825 #
    826 # Bug 3320
    827 #
    828 "(a([^ ]+)){0,} (c)"              "<0><1>a<2>b</2></1> <3>c</3></0> "
    829 "(a([^ ]+))* (c)"                 "<0><1>a<2>b</2></1> <3>c</3></0> "
    830 
    831 #
    832 # Bug 3436
    833 #
    834 "(.*?) *$"                        "<0><1>test</1>    </0>"
    835 
    836 #
    837 # Bug 4034
    838 #
    839 "\D"                              "<0>A</0>BC\u00ffDEF"
    840 "\d"                              "ABC\u00ffDEF"
    841 "\D"                              "<0>\u00ff</0>DEF"
    842 "\d"                              "\u00ffDEF"
    843 "\D"                              "123<0>\u00ff</0>DEF"
    844 "\D"                              "<0>\u0100</0>DEF"
    845 "\D"                              "123<0>\u0100</0>DEF"
    846 
    847 #
    848 #bug 4024, new line sequence handling
    849 #
    850 "(?m)^"                           "<0></0>AA\u000d\u000aBB\u000d\u000aCC\u000d\u000a"
    851 "(?m)^"                       2   "AA\u000d\u000a<0></0>BB\u000d\u000aCC\u000d\u000a"
    852 "(?m)^"                       3   "AA\u000d\u000aBB\u000d\u000a<0></0>CC\u000d\u000a"
    853 "(?m)^"                       4   "AA\u000d\u000aBB\u000d\u000aCC\u000d\u000a"
    854 
    855 "(?m)$"                           "AA<0></0>\u000d\u000aBB\u000d\u000aCC\u000d\u000a"
    856 "(?m)$"                       2   "AA\u000d\u000aBB<0></0>\u000d\u000aCC\u000d\u000a"
    857 "(?m)$"                       3   "AA\u000d\u000aBB\u000d\u000aCC<0></0>\u000d\u000a"
    858 "(?m)$"                       4   "AA\u000d\u000aBB\u000d\u000aCC\u000d\u000a<0></0>"
    859 "(?m)$"                       5   "AA\u000d\u000aBB\u000d\u000aCC\u000d\u000a"
    860 
    861 "$"                               "AA\u000d\u000aBB\u000d\u000aCC<0></0>\u000d\u000a"
    862 "$"                           2   "AA\u000d\u000aBB\u000d\u000aCC\u000d\u000a<0></0>"
    863 "$"                           3   "AA\u000d\u000aBB\u000d\u000aCC\u000d\u000a"
    864 
    865 "$"                               "\u000a\u0000a<0></0>\u000a"
    866 "$"                           2   "\u000a\u0000a\u000a<0></0>"
    867 "$"                           3   "\u000a\u0000a\u000a"
    868 
    869 "$"                               "<0></0>"
    870 "$"                           2   ""
    871 
    872 "$"                               "<0></0>\u000a"
    873 "$"                           2   "\u000a<0></0>"
    874 "$"                           3   "\u000a"
    875 
    876 "^"                               "<0></0>"
    877 "^"                           2   ""
    878 
    879 "\Z"                              "<0></0>"
    880 "\Z"                          2   ""
    881 "\Z"                          2   "\u000a<0></0>"
    882 "\Z"                              "<0></0>\u000d\u000a"
    883 "\Z"                          2   "\u000d\u000a<0></0>"
    884 
    885 
    886 # No matching ^ at interior new-lines if not in multi-line mode.
    887 "^"                               "<0></0>AA\u000d\u000aBB\u000d\u000aCC\u000d\u000a"
    888 "^"                           2   "AA\u000d\u000aBB\u000d\u000aCC\u000d\u000a"
    889 
    890 #
    891 # Dot-matches-any mode, and stopping at new-lines if off.
    892 #
    893 "."                               "<0>1</0>23\u000aXYZ"
    894 "."                           2   "1<0>2</0>3\u000aXYZ"
    895 "."                           3   "12<0>3</0>\u000aXYZ"
    896 "."                           4   "123\u000a<0>X</0>YZ"    # . doesn't match newlines
    897 "."                           4   "123\u000b<0>X</0>YZ"
    898 "."                           4   "123\u000c<0>X</0>YZ"
    899 "."                           4   "123\u000d<0>X</0>YZ"
    900 "."                           4   "123\u000d\u000a<0>X</0>YZ"
    901 "."                           4   "123\u0085<0>X</0>YZ"
    902 "."                           4   "123\u2028<0>X</0>YZ"
    903 "."                           4   "123\u2029<0>X</0>YZ"
    904 "."                           4s  "123<0>\u000a</0>XYZ"    # . matches any
    905 "."                           4s  "123<0>\u000b</0>XYZ"
    906 "."                           4s  "123<0>\u000c</0>XYZ"
    907 "."                           4s  "123<0>\u000d</0>XYZ"
    908 "."                           4s  "123<0>\u000d\u000a</0>XYZ"
    909 "."                           4s  "123<0>\u0085</0>XYZ"
    910 "."                           4s  "123<0>\u2028</0>XYZ"
    911 "."                           4s  "123<0>\u2029</0>XYZ"
    912 ".{6}"                            "123\u000a\u000dXYZ"
    913 ".{6}"                         s  "<0>123\u000a\u000dX</0>Y"
    914 
    915 
    916 #
    917 # Ranges
    918 #
    919 ".*"                              "abc<r><0>def</0></r>ghi"
    920 "a"                               "aaa<r><0>a</0>aa</r>aaa"
    921 "a"                           2   "aaa<r>a<0>a</0>a</r>aaa"
    922 "a"                           3   "aaa<r>aa<0>a</0></r>aaa"
    923 "a"                           4   "aaa<r>aaa</r>aaa"
    924 "a"                               "aaa<r><0>a</0>aa</r>aaa"
    925 
    926 #
    927 # [set] parsing, systematically run through all of the parser states.
    928 #
    929 #
    930 "[def]+"                          "abc<0>ddeeff</0>ghi"       # set-open
    931 "[^def]+"                         "<0>abc</0>defghi"
    932 "[:digit:]+"                      "abc<0>123</0>def"
    933 "[:^digit:]+"                     "<0>abc</0>123def"
    934 "[\u005edef]+"                    "abc<0>de^f</0>ghi"
    935 
    936 "[]]+"                            "abc<0>]]]</0>[def"         # set-open2
    937 "[^]]+"                           "<0>abc</0>]]][def"
    938 
    939 "[:Lu:]+"                         "abc<0>ABC</0>def"          # set-posix
    940 "[:Lu]+"                          "abc<0>uL::Lu</0>"
    941 "[:^Lu]+"                         "abc<0>uL:^:Lu</0>"
    942 "[:]+"                            "abc<0>:::</0>def"
    943 "[:whats this:]"               E  " "
    944 "[--]+"                       dE  "-------"
    945 
    946 "[[nested]]+"                      "xyz[<0>nnetsteed</0>]abc"   #set-start
    947 "[\x{41}]+"                        "CB<0>AA</0>ZYX"
    948 "[\[\]\\]+"                        "&*<0>[]\\</0>..."
    949 "[*({<]+"                          "^&<0>{{(<<*</0>)))"
    950 
    951 
    952 "[-def]+"                          "abc<0>def-ef-d</0>xyz"     # set-start-dash
    953 "[abc[--def]]"                 E   " "
    954 
    955 "[x[&def]]+"                        "abc<0>def&</0>ghi"        # set-start-amp
    956 "[&& is bad at start]"         E   " "
    957 
    958 "[abc"                         E   " "                         # set-after-lit
    959 "[def]]"                           "abcdef"
    960 "[def]]"                           "abcde<0>f]</0>]"
    961 
    962 "[[def][ghi]]+"                    "abc]<0>defghi</0>[xyz"     # set-after-set
    963 "[[def]ghi]+"                      "abc]<0>defghi</0>[xyz" 
    964 "[[[[[[[[[[[abc]"              E   " "
    965 "[[abc]\p{Lu}]+"                   "def<0>abcABC</0>xyz"
    966 
    967 "[d-f]+"                           "abc<0>def</0>ghi"          # set-after-range
    968 "[d-f[x-z]]+"                      "abc<0>defxyzzz</0>gw"
    969 "[\s\d]+"                          "abc<0>  123</0>def"
    970 "[d-f\d]+"                         "abc<0>def123</0>ghi"
    971 "[d-fr-t]+"                        "abc<0>defrst</0>uvw"
    972 
    973 "[abc--]"                      E   " "                         # set-after-op
    974 "[[def]&&]"                    E   " "
    975 "[-abcd---]+"                     "<0>abc</0>--"                 #[-abcd]--[-]
    976 "[&abcd&&&ac]+"                   "b<0>ac&&ca</0>d"              #[&abcd]&&[&ac]
    977 
    978 "[[abcd]&[ac]]+"                  "b<0>acac</0>d"              # set-set-amp
    979 "[[abcd]&&[ac]]+"                 "b<0>acac</0>d"
    980 "[[abcd]&&ac]+"                   "b<0>acac</0>d"
    981 "[[abcd]&ac]+"                    "<0>bacacd&&&</0>"
    982 
    983 "[abcd&[ac]]+"                    "<0>bacacd&&&</0>"           #set-lit-amp
    984 "[abcd&&[ac]]+"                   "b<0>acac</0>d"
    985 "[abcd&&ac]+"                     "b<0>acac</0>d"
    986 
    987 "[[abcd]-[ac]]+"                  "a<0>bdbd</0>c"              # set-set-dash
    988 "[[abcd]--[ac]]+"                 "a<0>bdbd</0>c"
    989 "[[abcd]--ac]+"                   "a<0>bdbd</0>c"
    990 "[[abcd]-ac]+"                    "<0>bacacd---</0>"
    991 
    992 "[a-d--[b-c]]+"                   "b<0>adad</0>c"              # set-range-dash
    993 "[a-d--b-c]+"                     "b<0>adad</0>c"   
    994 "[a-d-[b-c]]+"                    "<0>bad-adc</0>"
    995 "[a-d-b-c]+"                      "<0>bad-adc</0>"
    996 "[\w--[b-c]]+"                    "b<0>adad</0>c"  
    997 "[\w--b-c]+"                      "b<0>adad</0>c"   
    998 "[\w-[b-c]]+"                     "<0>bad-adc</0>"
    999 "[\w-b-c]+"                       "<0>bad-adc</0>"
   1000 
   1001 "[a-d&&[b-c]]+"                   "a<0>bcbc</0>d"              # set-range-amp
   1002 "[a-d&&b-c]+"                     "a<0>bcbc</0>d"
   1003 "[a-d&[b-c]]+"                    "<0>abc&bcd</0>"
   1004 "[a-d&b-c]+"                      "<0>abc&bcd</0>"
   1005 
   1006 "[abcd--bc]+"                     "b<0>adda</0>c"              # set-lit-dash
   1007 "[abcd--[bc]]+"                   "b<0>adda</0>c"
   1008 "[abcd-[bc]]+"                    "<0>bad--dac</0>xyz"
   1009 "[abcd-]+"                        "<0>bad--dac</0>xyz"
   1010 
   1011 "[abcd-\s]+"                 E    "xyz<0>abcd  --</0>xyz"      # set-lit-dash-esc
   1012 "[abcd-\N{LATIN SMALL LETTER G}]+"  "xyz-<0>abcdefg</0>hij-"
   1013 "[bcd-\{]+"                       "a<0>bcdefyz{</0>|}"
   1014 
   1015 "[\p{Ll}]+"                       "ABC<0>abc</0>^&*&"          # set-escape
   1016 "[\P{Ll}]+"                       "abc<0>ABC^&*&</0>xyz"
   1017 "[\N{LATIN SMALL LETTER Q}]+"     "mnop<0>qqq</0>rst"
   1018 "[\sa]+"                          "cb<0>a  a  </0>(*&"
   1019 "[\S]+"                           "   <0>hello</0>  "
   1020 "[\w]+"                           "   <0>hello_world</0>!  "
   1021 "[\W]+"                           "a<0>   *$%#,</0>hello "
   1022 "[\d]+"                           "abc<0>123</0>def"
   1023 "[\D]+"                           "123<0>abc</0>567"
   1024 "[\$\#]+"                         "123<0>$#$#</0>\\"
   1025 
   1026 #
   1027 #  Try each of the Java compatibility properties.
   1028 #    These are checked here, while normal Unicode properties aren't, because
   1029 #    these Java compatibility properties are implemented directly by regexp, while other
   1030 #    properties are handled by ICU's Property and UnicodeSet APIs.
   1031 #
   1032 #    These tests are only to verify that the names are recognized and the
   1033 #    implementation isn't dead.  They are not intended to verify that the
   1034 #    function definitions are 100% correct.
   1035 #
   1036 "[:InBasic Latin:]+"               "ΓΔΕΖΗΘ<0>hello, world.</0>ニヌネノハバパ"
   1037 "[:^InBasic Latin:]+"              "<0>ΓΔΕΖΗΘ</0>hello, world.ニヌネノハバパ"
   1038 "\p{InBasicLatin}+"                "ΓΔΕΖΗΘ<0>hello, world.</0>ニヌネノハバパ"
   1039 "\P{InBasicLatin}+"                "<0>ΓΔΕΖΗΘ</0>hello, world.ニヌネノハバパ"
   1040 "\p{InGreek}+"                     "<0>ΓΔΕΖΗΘ</0>hello, world.ニヌネノハバパ"
   1041 "\p{InCombining Marks for Symbols}" "<0>\u20d0</0>"
   1042 "\p{Incombiningmarksforsymbols}"    "<0>\u20d0</0>"
   1043 
   1044 
   1045 "\p{javaDefined}+"                 "\uffff<0>abcd</0>\U00045678"
   1046 "\p{javaDigit}+"                   "abc<0>1234</0>xyz"
   1047 "\p{javaIdentifierIgnorable}+"     "abc<0>\u0000\u000e\u009f</0>xyz"
   1048 "\p{javaISOControl}+"              "abc<0>\u0000\u000d\u0083</0>xyz"
   1049 "\p{javaJavaIdentifierPart}+"      "#@!<0>abc123_$</0>;"
   1050 "\p{javaJavaIdentifierStart}+"     "123\u0301<0>abc$_</0>%^&"
   1051 "\p{javaLetter}+"                  "123<0>abcDEF</0>&*()("
   1052 "\p{javaLetterOrDigit}+"           "$%^&*<0>123abcகஙசஜஞ</0>☺♘♚☔☎♬⚄⚡"
   1053 "\p{javaLowerCase}+"               "ABC<0>def</0>&^%#:="
   1054 "\p{javaMirrored}+"                "ab$%<0>(){}[]</0>xyz"
   1055 "\p{javaSpaceChar}+"               "abc<0> \u00ao\u2028</0>!@#"
   1056 "\p{javaSupplementaryCodePoint}+"  "abc\uffff<0>\U00010000\U0010ffff</0>\u0000"
   1057 "\p{javaTitleCase}+"               "abCE<0>Džῌᾨ</0>123"
   1058 "\p{javaUnicodeIdentifierStart}+"  "123<0>abcⅣ</0>%^&&*"
   1059 "\p{javaUnicodeIdentifierPart}+"   "%&&^<0>abc123\u0301\u0002</0>..."
   1060 "\p{javaUpperCase}+"               "abc<0>ABC</0>123"
   1061 "\p{javaValidCodePoint}+"          "<0>\u0000abc\ud800 unpaired \udfff |\U0010ffff</0>"
   1062 "\p{javaWhitespace}+"              "abc\u00a0\u2007\u202f<0> \u0009\u001c\u001f\u2028</0>42"
   1063 "\p{all}+"                         "<0>123\u0000\U0010ffff</0>"
   1064 "\P{all}+"                         "123\u0000\U0010ffff"
   1065 
   1066 # [:word:] is implemented directly by regexp.  Not a java compat property, but PCRE and others.
   1067 
   1068 "[:word:]+"                        ".??$<0>abc123ΓΔΕΖΗ_</0>%%%"
   1069 "\P{WORD}+"                        "<0>.??$</0>abc123ΓΔΕΖΗ_%%%"
   1070 
   1071 #
   1072 #  Errors on unrecognized ASCII letter escape sequences.
   1073 #
   1074 "[abc\Y]+"                         "<0>abcY</0>"
   1075 "[abc\Y]+"                     eE  "<0>abcY</0>"
   1076 
   1077 "(?:a|b|c|\Y)+"                    "<0>abcY</0>"
   1078 "(?:a|b|c|\Y)+"                eE  "<0>abcY</0>"
   1079 
   1080 "\Q\Y\E"                       e   "<0>\\Y</0>"
   1081 
   1082 #
   1083 # Reported problem
   1084 #
   1085 "[a-\w]"                       E  "x"
   1086 
   1087 #
   1088 # Bug 4045
   1089 #
   1090 "A*"                              "<0>AAAA</0>"
   1091 "A*"                           2  "AAAA<0></0>"
   1092 "A*"                           3  "AAAA"
   1093 "A*"                           4  "AAAA"
   1094 "A*"                           5  "AAAA"
   1095 "A*"                           6  "AAAA"
   1096 "A*"                              "<0></0>"
   1097 "A*"                           2  ""
   1098 "A*"                           3  ""
   1099 "A*"                           4  ""
   1100 "A*"                           5  ""
   1101 
   1102 #
   1103 # Bug 4046
   1104 #
   1105 "(?m)^"                           "<0></0>AA\u000dBB\u000dCC\u000d"
   1106 "(?m)^"                        2  "AA\u000d<0></0>BB\u000dCC\u000d"
   1107 "(?m)^"                        3  "AA\u000dBB\u000d<0></0>CC\u000d"
   1108 "(?m)^"                        4  "AA\u000dBB\u000dCC\u000d"
   1109 "(?m)^"                        5  "AA\u000dBB\u000dCC\u000d"
   1110 "(?m)^"                        6  "AA\u000dBB\u000dCC\u000d"
   1111 
   1112 "(?m)^"                           "<0></0>AA\u000d\u000aBB\u000d\u000aCC\u000d\u000a"
   1113 "(?m)^"                        2  "AA\u000d\u000a<0></0>BB\u000d\u000aCC\u000d\u000a"
   1114 "(?m)^"                        3  "AA\u000d\u000aBB\u000d\u000a<0></0>CC\u000d\u000a"
   1115 "(?m)^"                        4  "AA\u000d\u000aBB\u000d\u000aCC\u000d\u000a"
   1116 
   1117 #
   1118 # Bug 4059
   1119 #
   1120 "\w+"				  "<0>イチロー</0>"
   1121 "\b....\b."                       "<0>イチロー?</0>"
   1122 
   1123 
   1124 #
   1125 # Bug 4058    ICU Unicode Set patterns have an odd feature -
   1126 #             A $ as the last character before the close bracket means match
   1127 #             a \uffff, which means off the end of the string in transliterators.
   1128 #             Didn't make sense for regular expressions, and is now fixed.
   1129 #
   1130 "[\$](P|C|D);"                    "<0>$<1>P</1>;</0>"
   1131 "[$](P|C|D);"                     "<0>$<1>P</1>;</0>"
   1132 "[$$](P|C|D);"                    "<0>$<1>P</1>;</0>"
   1133 
   1134 #
   1135 # bug 4888    Flag settings lost in some cases.
   1136 #
   1137 "((a){2})|(#)"              is    "no"
   1138 "((a){2})|(#)"              is    "<0><1>a<2>a</2></1></0>#"
   1139 "((a){2})|(#)"              is    "a<0><3>#</3></0>"
   1140 
   1141 "((a|b){2})|c"              is    "<0>c</0>"
   1142 "((a|b){2})|c"              is    "<0>C</0>"
   1143 "((a|b){2})|c"              s     "C"
   1144 
   1145 #
   1146 # bug 5617  ZWJ \u200d shouldn't cause word boundaries
   1147 #
   1148 ".+?\b"                           "<0> </0>\u0935\u0915\u094D\u200D\u0924\u0947 "
   1149 ".+?\b"                       2   " <0>\u0935\u0915\u094D\u200D\u0924\u0947</0> "
   1150 ".+?\b"                       3   " \u0935\u0915\u094D\u200D\u0924\u0947 "
   1151 
   1152 #
   1153 # bug 5386  "^.*$" should match empty input
   1154 #
   1155 "^.*$"                            "<0></0>"
   1156 "^.*$"                     m      "<0></0>"
   1157 "^.*$"                            "<0></0>\n"
   1158 "(?s)^.*$"                        "<0>\n</0>"
   1159 
   1160 #
   1161 # bug 5386  Empty pattern and empty input should match.
   1162 #
   1163 ""                                "<0></0>abc"
   1164 ""                                "<0></0>"
   1165 
   1166 #
   1167 # bug 5386   Range upper and lower bounds can be equal
   1168 #
   1169 "[a-a]"                           "<0>a</0>"
   1170 
   1171 #
   1172 # bug 5386  $* should not fail, should match empty string.
   1173 #
   1174 "$*"                              "<0></0>abc"
   1175 
   1176 #
   1177 # bug 5386  \Q ... \E escaping problem
   1178 #
   1179 "[a-z\Q-$\E]+"                    "QE<0>abc-def$</0>."
   1180 
   1181 # More reported 5386 Java comaptibility failures
   1182 #
   1183 "[^]*abb]*"                       "<0>kkkk</0>"
   1184 "\xa"                             "huh"              # Java would like to be warned.
   1185 "^.*$"                            "<0></0>"
   1186 
   1187 #
   1188 # bug 5386  Empty left alternation should produce a zero length match.
   1189 #
   1190 "|a"                              "<0></0>a"
   1191 "$|ab"                            "<0>ab</0>"
   1192 "$|ba"                            "ab<0></0>"
   1193 
   1194 #
   1195 # bug 5386  Java compatibility for set expressions
   1196 #
   1197 "[a-z&&[cde]]+"                   "ab<0>cde</0>fg"
   1198 
   1199 #
   1200 # bug 6019  matches() needs to backtrack and check for a longer match if the
   1201 #                     first match(es) found don't match the entire input.
   1202 #
   1203 "a?|b"                            "<0></0>b"
   1204 "a?|b"                         M  "<0>b</0>"
   1205 "a?|.*?u|stuff|d"              M  "<0>stuff</0>"
   1206 "a?|.*?(u)|stuff|d"            M  "<0>stuff<1>u</1></0>"
   1207 "a+?"                             "<0>a</0>aaaaaaaaaaaa"
   1208 "a+?"                          M  "<0>aaaaaaaaaaaaa</0>"
   1209 
   1210 #
   1211 #   Bug 7724.  Expression to validate zip codes.
   1212 #
   1213 "(?!0{5})(\d{5})(?!-?0{4})(-?\d{4})?"    "<0><1>94040</1><2>-3344</2></0>"
   1214 "(?!0{5})(\d{5})(?!-?0{4})(-?\d{4})?"    "94040-0000"
   1215 "(?!0{5})(\d{5})(?!-?0{4})(-?\d{4})?"    "00000-3344"
   1216 
   1217 #
   1218 #    Bug 8666.  Assertion failure on match, bad operand to JMP_SAV_X opcode.
   1219 #
   1220 "((.??)+|A)*"                     "<0><1><2></2></1></0>AAAAABBBBBCCCCCDDDDEEEEE"
   1221 
   1222 #
   1223 #    Bug 8826.  Incorrect results with case insensitive matches.
   1224 #
   1225 "AS(X)"                         i "aßx"
   1226 "AS.*"                          i "aßx"           # Expansion of sharp s can't split between pattern terms.
   1227 "ASßS"                          i "<0>aßß</0>"    # All one literal string, does match.
   1228 "ASß{1}S"                       i "aßß"           # Pattern with terms, no match.
   1229 "aßx"                           i "<0>assx</0>"
   1230 "aßx"                           i "<0>ASSX</0>"
   1231 "aßx"                           i "<0>aßx</0>"
   1232 "ASS(.)"                        i "<0>aß<1>x</1></0>"
   1233 
   1234 # Case Insensitive, probe some corner cases.
   1235 "ass+"                          i "aß"            # Second 's' in pattern is qualified, can't combine with first.
   1236 "as+"                           i "aß"
   1237 "aßs"                           i "as"            # Can't match half of a ß
   1238 "aß+"                           i "<0>assssssss</0>s"
   1239 "aß+"                           i "<0>assßSssSSS</0>s"
   1240 "a(ß?)+"                        i "<0>assssssss<1></1></0>s"
   1241 "a(ß?)+"                        i "<0>a<1></1></0>zzzzzzzzs"
   1242 
   1243 "\U00010400"                    i "<0>\U00010428</0>"   # case folded supplemental code point.
   1244 
   1245 "sstuff"                        i "<0>ßtuff</0>"    # exercise optimizations on what chars can start a match.
   1246 "sstuff"                        i "s<0>ßtuff</0>"    # exercise optimizations on what chars can start a match.
   1247 "ßtuff"                         i "s<0>sstuff</0>"
   1248 "ßtuff"                         i "s<0>Sstuff</0>"
   1249 
   1250 "a(..)\1"                       i "<0>A<1>bc</1>BC</0>def"
   1251 "(ß)\1"                         i "aa<0><1>ss</1>ß</0>zz"          # Case insensitive back reference
   1252 "..(.)\1"                       i "<0>aa<1>ß</1>ss</0>"
   1253 "ab(..)\1"                      i "xx<0>ab<1>ss</1>ß</0>ss" 
   1254 
   1255 " (ss) ((\1.*)|(.*))"           i "<0> <1>ss</1> <2><4>sß</4></2></0>"       # The back reference 'ss' must not match in 'sß'
   1256 
   1257 # Bug 9057
   1258 #   \u200c and \u200d should be word characters.
   1259 #
   1260 "\w+"                             "  <0>abc\u200cdef\u200dghi</0>   "
   1261 "\w+"                           i "  <0>abc\u200cdef\u200dghi</0>   "
   1262 "[\w]+"                           "  <0>abc\u200cdef\u200dghi</0>   "
   1263 "[\w]+"                         i "  <0>abc\u200cdef\u200dghi</0>   "
   1264 
   1265 # Bug 9283
   1266 #  uregex_open fails for look-behind assertion + case-insensitive
   1267 
   1268 "(ab)?(?<=ab)cd|ef"             i  "<0><1>ab</1>cd</0>"
   1269 
   1270 # Bug 9719  Loop breaking on (zero length match){3,}   (unlimited upper bound).
   1271 #
   1272 
   1273 "(?:abc){1,}abc"                   "<0>abcabcabcabcabc</0>"
   1274 "(?:2*){2,}?a2\z"                  "<0>2a2</0>" 
   1275 "(?:2*){2,}?a2\z"                  "2a3" 
   1276 "(?:x?+){3,}+yz"                   "w<0>yz</0>"
   1277 "(2*){2,}?a2\\z"                   "2a3"
   1278 "(2*){2,}?a2\\z"                   "<0>2<1></1>a2\\z</0>"
   1279 "(2*){2,}?a2\z"                    "<0>2<1></1>a2</0>"
   1280 
   1281 
   1282 # Bug 10024
   1283 #   Incorrect (unbounded) longest match length with {1, 20} style quantifiers.
   1284 #   Unbounded match is disallowed in look-behind expressions.
   1285 #   Max match length is used to limit where to check for look-behind matches.
   1286 
   1287 "(?<=a{1,5})bc"                   "aaaa<0>bc</0>def"
   1288 "(?<=(?:aa){3,20})bc"             "aaaaaa<0>bc</0>def"
   1289 "(?<!abc {1,100}|def {1,100}|ghi {1,100})jkl"      "def jkl"
   1290 "(?<!abc {1,100}|def {1,100}|ghi {1,100})jkl"      "rst <0>jkl</0>"
   1291 "(?<=a{11})bc"                   "aaaaaaaaaaa<0>bc</0>"
   1292 "(?<=a{11})bc"                   "aaaaaaaaaabc"
   1293 "(?<=a{1,})bc"           E       "aaaa<0>bc</0>def"   # U_REGEX_LOOK_BEHIND_LIMIT error.
   1294 "(?<=(?:){11})bc"                "<0>bc</0>"          # Empty (?:) expression.
   1295 
   1296 # Bug 10835
   1297 #   Match Start Set not being correctly computed for case insensitive patterns.
   1298 #   (Test here is to dump the compiled pattern & manually check the start set.)
   1299 
   1300 "(private|secret|confidential|classified|restricted)"  i   "hmm, <0><1>Classified</1></0> stuff"
   1301 "(private|secret|confidential|classified|restricted)"      "hmm, Classified stuff"
   1302 
   1303 # Bug 10844
   1304 
   1305 "^([\w\d:]+)$"                  "<0><1>DiesIst1Beispiel:text</1></0>"
   1306 "^([\w\d:]+)$"           i      "<0><1>DiesIst1Beispiel:text</1></0>"
   1307 "^(\w+\d\w+:\w+)$"              "<0><1>DiesIst1Beispiel:text</1></0>"
   1308 "^(\w+\d\w+:\w+)$"       i      "<0><1>DiesIst1Beispiel:text</1></0>"
   1309 
   1310 # Bug 11049
   1311 #   Edge cases in find() when pattern match begins with set of code points
   1312 #   and the match begins at the end of the string.
   1313 
   1314 "A|B|C"                         "hello <0>A</0>"
   1315 "A|B|C"                         "hello \U00011234"
   1316 "A|B|\U00012345"                "hello <0>\U00012345</0>"
   1317 "A|B|\U00010000"                "hello \ud800"
   1318 
   1319 # Bug 11369
   1320 #   Incorrect optimization of patterns with a zero length quantifier {0}
   1321 
   1322 "(.|b)(|b){0}\$(?#xxx){3}(?>\D*)"   "AAAAABBBBBCCCCCDDDDEEEEE"
   1323 "(|b)ab(c)"                     "<0><1></1>ab<2>c</2></0>"
   1324 "(|b){0}a{3}(D*)"               "<0>aaa<2></2></0>"
   1325 "(|b){0,1}a{3}(D*)"             "<0><1></1>aaa<2></2></0>"
   1326 "((|b){0})a{3}(D*)"             "<0><1></1>aaa<3></3></0>"
   1327 
   1328 # Bug 11370
   1329 #   Max match length computation of look-behind expression gives result that is too big to fit in the
   1330 #   in the 24 bit operand portion of the compiled code. Expressions should fail to compile
   1331 #   (Look-behind match length must be bounded. This case is treated as unbounded, an error.)
   1332 
   1333 "(?<!(0123456789a){10000000})x"         E  "no match"
   1334 "(?<!\\ubeaf(\\ubeaf{11000}){11000})"   E  "no match"
   1335 
   1336 # Bug 11374 Bad integer overflow check in number conversion.
   1337 #           4294967300 converts to 4 with 32 bit overflow.
   1338 
   1339 "x{4294967300}"                         E  "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
   1340 "x{0,4294967300}"                       E  "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
   1341 
   1342 # Bug 11373
   1343 #
   1344 #    Overflow checking in max match length computation for loops.
   1345 #    Value here is 10 * 100000 * 3000 = 3E9, overflowing a 32 bit signed value.
   1346 #    Before fixing, this case gave an assertion failure.
   1347 
   1348 "(?<=((0123456789){100000}){3000})abc"  E  "abc"
   1349 
   1350 # Bug 11507  Capture of an unpaired surrogate shouldn't allow a back reference to 
   1351 #            match half of a surrogate pair, but only another unpaired surrogate.
   1352 # 
   1353 "pre(.)post\1"                  "pre\ud800post\ud800\udc00"
   1354 "pre(.)post\1"                  "<0>pre<1>\ud800</1>post\ud800</0> fin"
   1355 "pre(.)post\1"          i       "pre\ud800post\ud800\udc00"         # case insensiteve backrefs take a different code path
   1356 "pre(.)post\1"          i       "<0>pre<1>\ud800</1>post\ud800</0> fin"
   1357 
   1358 # Bug 11554
   1359 #
   1360 #    Maximum match length computation was assuming UTF-16.
   1361 #    Used in look-behind matches to constrain how far back to look.
   1362 
   1363 "(?<=a\x{100000})spam"          "***a\x{100000}<0>spam</0>**"
   1364 "(?<=aą)spam"                   "**aą<0>spam</0>**"
   1365 "(?<=ąabc)spam"                 "**ąabc<0>spam</0>**"
   1366 
   1367 "(?<=a\x{100000})spam"          "***a\x{100001}spam**"
   1368 "(?<=aą)spam"                   "**bąspam**"
   1369 "(?<=ąabc)spam"                 "**ąabxspam**"
   1370 
   1371 # with negative look-behind
   1372 
   1373 "(?<!a\x{100000})spam"          "***a\x{100000}spam**"
   1374 "(?<!aą)spam"                   "**aąspam**"
   1375 "(?<!ąabc)spam"                 "**ąabcspam**"
   1376 
   1377 "(?<!a\x{100000})spam"          "***a\x{100001}<0>spam</0>**"
   1378 "(?<!aą)spam"                   "**bą<0>spam</0>**"
   1379 "(?<!ąabc)spam"                 "**ąabx<0>spam</0>**"
   1380 
   1381 # Bug #12930
   1382 #
   1383 #   Minimum Match Length computation, int32_t overflow on an empty set in the pattern.
   1384 #   The empty set, with no match possible, has a min match length of INT32_MAX.
   1385 #   Was incremented subsequently. Caused assertion failure on pattern compile.
   1386 
   1387 "[^\u0000-\U0010ffff]bc?"       "bc no match"
   1388 "[^\u0000-\U0010ffff]?bc?"      "<0>bc</0> has a match"
   1389 
   1390 # Bug #12160  Hit End behavior after find fails to find.
   1391 #             To match Java, should be true if find fails to find.
   1392 #
   1393 "abc"                  Z        "<0>abc</0> abc abc xyz"
   1394 "abc"                  Z2       "abc <0>abc</0> abc xyz"
   1395 "abc"                  Z3       "abc abc <0>abc</0> xyz"
   1396 "abc"                  z4       "abc abc abc xyz"
   1397 
   1398 # Bug #13844  Verify that non-standard Java property names are recognized.
   1399 "[\p{IsAlphabetic}]"            " <0>A</0>"
   1400 "[\P{IsAlphabetic}]"            "A<0> </0>"
   1401 "[\p{IsIdeographic}]"           "A<0>〆</0>"
   1402 "[\P{IsIdeographic}]"           "〆<0>A</0>"
   1403 "[\p{IsLetter}]"                " <0>A</0>"
   1404 "[\P{IsLetter}]"                "A<0> </0>"
   1405 "[\p{Letter}]"                  " <0>A</0>"
   1406 "[\p{IsLowercase}]"             "A<0>a</0>"
   1407 "[\P{IsLowercase}]"             "a<0>A</0>"
   1408 "[\p{IsUppercase}]"             "a<0>A</0>"
   1409 "[\P{IsUppercase}]"             "A<0>a</0>"
   1410 "[\p{IsTitlecase}]"             "D<0>Dz</0>"
   1411 "[\P{IsTitlecase}]"             "Dz<0>D</0>"
   1412 "[\p{IsPunctuation}]"           " <0>&</0>"
   1413 "[\P{IsPunctuation}]"           "&<0> </0>"
   1414 "[\p{IsControl}]"               " <0>\x{82}</0>"
   1415 "[\P{IsControl}]"               "\x{82}<0> </0>"
   1416 "[\p{IsWhite_Space}]"           "x<0> </0>"
   1417 "[\P{IsWhite_Space}]"           " <0>x</0>"
   1418 "[\p{IsDigit}]"                 " <0>4</0>"
   1419 "[\P{IsDigit}]"                 "4<0> </0>"
   1420 "[\p{IsHex_Digit}]"             " <0>F</0>"
   1421 "[\P{IsHex_Digit}]"             "F<0> </0>"
   1422 "[\p{IsJoin_Control}]"          " <0>\x{200d}</0>"
   1423 "[\P{IsJoin_Control}]"          "\x{200d}<0> </0>"
   1424 "[\p{IsNoncharacter_Code_Point}]"     "A<0>\x{5fffe}</0>"
   1425 "[\p{IsAssigned}]"              "\x{10ffff}<0>a</0>"
   1426 "[\P{IsAssigned}]"              "a<0>\x{10ffff}</0>"
   1427 
   1428 "[\p{InBasic Latin}]"           "〆<0>A</0>"
   1429 "[\p{InBasicLatin}]"            "〆<0>A</0>"
   1430 "[\p{InBasic-Latin}]"           "〆<0>A</0>"    # ICU accepts '-'; Java does not.
   1431 "[\p{InBasic_Latin}]"           "〆<0>A</0>"
   1432 "[\p{Inbasiclatin}]"            "〆<0>A</0>"
   1433 "[\p{inbasiclatin}]"       E    "〆<0>A</0>"    # "In" must be cased as shown. Property name part is case insensitive.
   1434 "[\p{InCombining_Marks_for_Symbols}]"    "a<0>\x{20DD}</0>"    # COMBINING ENCLOSING CIRCLE
   1435 
   1436 "[\p{all}]*"                    "<0>\x{00}abc\x{10ffff}</0>"
   1437 "[\p{javaBadProperty}]"    E    "whatever"
   1438 "[\p{IsBadProperty}]"      E    "whatever"
   1439 "[\p{InBadBlock}]"         E    "whatever"
   1440 "[\p{In}]"                 E    "whatever"
   1441 "[\p{Is}]"                 E    "whatever"
   1442 "[\p{java}]"                    "x<0>ꦉ</0>"      # Note: "java" is a valid script code.
   1443 
   1444 "[\p{javaLowerCase}]+"             "A<0>a</0>"
   1445 "[\p{javaLowerCase}]+"     i       "<0>Aa</0>"
   1446 "[\P{javaLowerCase}]+"             "<0>A</0>a"
   1447 "[\P{javaLowerCase}]+"     i       "Aa"          # No Match because case fold of the set happens first, then negation.
   1448                                                 #  JDK is not case insensitive w named properties, even though
   1449                                                 #  the insensitive match flag is set. A JDK bug?
   1450 
   1451 "[a-z]+"                   i       "<0>Aa</0>"   # Matches JDK behavior.
   1452 "[^a-z]+"                  i       "Aa"          # (no match) which is JDK behavior. Case fold first, then negation.
   1453 
   1454 # Bug 20385.  Assertion failure while compiling a negative look-behind expression consisting of a set with
   1455 #             no contents. Meaning the [set] can never match. There is no syntax to directly express
   1456 #             an empty set, so generate it by negating (^) a set of all code points.
   1457 #             Also check empty sets in other contexts.
   1458 
   1459 "(?<![^[^a]a])"                    "<0></0>abc"
   1460 
   1461 "(?<![^\u0000-\U0010ffff])"        "<0></0>abc"
   1462 "x(?<![^\u0000-\U0010ffff])"       "<0>x</0>abc"
   1463 "x(?<![^\u0000-\U0010ffff]{1,5})"  "<0>x</0>abc"
   1464 "x(?<![^\u0000-\U0010ffff]{0,5})"  "xabc"
   1465 
   1466 "(?<=[^\u0000-\U0010ffff])"        "abc"
   1467 "(x?<=[^\u0000-\U0010ffff])"       "abc"
   1468 "x(?<=[^\u0000-\U0010ffff]{1,5})"  "xabc"
   1469 "x(?<=[^\u0000-\U0010ffff]{0,5})"  "<0>x</0>abc"
   1470 
   1471 "[^\u0000-\U0010ffff]"             "a"
   1472 "[^[^\u0000-\U0010ffff]]"          "<0>a</0>"
   1473 
   1474 "This is a string with (?:one |two |three )endings"   "<0>This is a string with two endings</0>"
   1475 
   1476 # Bug ICU-20544. Similar to 20385, above. Assertion failure with a negative look-behind assertion containing
   1477 #                a set with no contents. Look-behind pattern includes more than just the empty set.
   1478 
   1479 "(?<![ⰿ&&m]c)"                     "<0></0>abc"   # note: first 'ⰿ' is \u2c3f, hence empty set.
   1480 "(?<![^\u0000-\U0010ffff]c)"       "<0></0>abc"
   1481 "(?<=[^[^]]†)"                 "abc"          # Problem also exists w positive look-behind
   1482 
   1483 # Bug ICU-20391. Crash in computation of minimum match length with nested look-around patterns.
   1484 #
   1485 "(?<=(?<=((?=)){0}+)"         E    "aaa"
   1486 "(?<=(?<=((?=)){0}+))"             "<0></0>"
   1487 "(?<=c(?<=b((?=a)){1}+))"          "aaa"
   1488 "abc(?=de(?=f))...g"               "<0>abcdefg</0>"
   1489 "abc(?=de(?=f))...g"               "abcdxfg"
   1490 
   1491 # Bug ICU-20618 Assertion failure with nested look-around expressions.
   1492 #
   1493 "(?<=(?<=b?(?=a)))"               "hello, world."
   1494 
   1495 # Bug ICU-20939
   1496 # Incorrect word \b boundaries w UTF-8 input and non-ASCII text
   1497 #
   1498 "(?w)\b"                     v2     "äää<0></0> äää"
   1499 
   1500 # Bug ICU-21492 Assertion failure with nested look-around expressions.
   1501 #
   1502 "(?<=(?:(?<=(?:(?<=(?:(?<=)){2})){3})){4}"   E  "<0></0>"  # orig failure from bug report, w mismatched parens.
   1503 "(?:(?<=(?:(?<=)){2}))"            "<0></0>"               # Simplified case, with a valid pattern.
   1504 
   1505 #  Random debugging, Temporary
   1506 #
   1507 
   1508 #
   1509 #  Regexps from http://www.regexlib.com
   1510 #
   1511 "^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$"   G "<0>G1 1AA</0>"
   1512 "^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$"   G "<0>EH10 2QQ</0>"
   1513 "^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$"   G "<0>SW1 1ZZ</0>"
   1514 "^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$"     "G111 1AA"
   1515 "^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$"     "X10 WW"
   1516 "^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$"     "DDD 5WW"
   1517 #"^[\w\-]+(?:\.[\w\-]+)*@(?:[\w\-]+\.)+[a-zA-Z]{2,7}$"   dG "<0>joe.tillis@unit.army.mil</0>"   # TODO:  \w in pattern
   1518 #"^[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}$"   G "<0>jack_rabbit@slims.com</0>"   # TODO:  \w in pattern
   1519 #"^[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}$"   G "<0>foo99@foo.co.uk</0>"   # TODO:  \w in pattern
   1520 #"^[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}$"     "find_the_mistake.@foo.org"   # TODO:  \w in pattern
   1521 #"^[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}$"     ".prefix.@some.net"
   1522 "^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"   G "<0>asmith@mactec.com</0>"
   1523 "^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"   G "<0>foo12@foo.edu</0>"
   1524 "^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"   G "<0>bob.smith@foo.tv</0>"
   1525 "^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"     "joe"
   1526 "^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"     "@foo.com"
   1527 "^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"     "a@a"
   1528 "^\d{1,2}\/\d{1,2}\/\d{4}$"   G "<0>4/1/2001</0>"
   1529 "^\d{1,2}\/\d{1,2}\/\d{4}$"   G "<0>12/12/2001</0>"
   1530 "^\d{1,2}\/\d{1,2}\/\d{4}$"   G "<0>55/5/3434</0>"
   1531 "^\d{1,2}\/\d{1,2}\/\d{4}$"     "1/1/01"
   1532 "^\d{1,2}\/\d{1,2}\/\d{4}$"     "12 Jan 01"
   1533 "^\d{1,2}\/\d{1,2}\/\d{4}$"     "1-1-2001"
   1534 "^(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$"   G "<0>01.1.02</0>"
   1535 "^(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$"   G "<0>11-30-2001</0>"
   1536 "^(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$"   G "<0>2/29/2000</0>"
   1537 "^(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$"     "02/29/01"
   1538 "^(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$"     "13/01/2002"
   1539 "^(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$"     "11/00/02"
   1540 "^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$"   G "<0>127.0.0.1</0>"
   1541 "^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$"   G "<0>255.255.255.0</0>"
   1542 "^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$"   G "<0>192.168.0.1</0>"
   1543 "^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$"     "1200.5.4.3"
   1544 "^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$"     "abc.def.ghi.jkl"
   1545 "^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$"     "255.foo.bar.1"
   1546 "(AUX|PRN|NUL|COM\d|LPT\d)+\s*$"   G "<0>COM1</0>"
   1547 "(AUX|PRN|NUL|COM\d|LPT\d)+\s*$"   G "<0>AUX</0>"
   1548 "(AUX|PRN|NUL|COM\d|LPT\d)+\s*$"   G "<0>LPT1</0>"
   1549 "(AUX|PRN|NUL|COM\d|LPT\d)+\s*$"     "image.jpg"
   1550 "(AUX|PRN|NUL|COM\d|LPT\d)+\s*$"     "index.html"
   1551 "(AUX|PRN|NUL|COM\d|LPT\d)+\s*$"     "readme.txt"
   1552 "^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$"   G "<0>29/02/1972</0>"
   1553 "^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$"   G "<0>5-9-98</0>"
   1554 "^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$"   G "<0>10-11-2002</0>"
   1555 "^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$"     "29/02/2003"
   1556 "^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$"     "12/13/2002"
   1557 "^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$"     "1-1-1500"
   1558 "^(user=([a-z0-9]+,)*(([a-z0-9]+){1});)?(group=([a-z0-9]+,)*(([a-z0-9]+){1});)?(level=[0-9]+;)?$"   G "<0>user=foo,bar,quux;group=manager,admin;level=100;</0>"
   1559 "^(user=([a-z0-9]+,)*(([a-z0-9]+){1});)?(group=([a-z0-9]+,)*(([a-z0-9]+){1});)?(level=[0-9]+;)?$"   G "<0>group=nobody;level=24;</0>"
   1560 "^(user=([a-z0-9]+,)*(([a-z0-9]+){1});)?(group=([a-z0-9]+,)*(([a-z0-9]+){1});)?(level=[0-9]+;)?$"     "user=foo"
   1561 "^(user=([a-z0-9]+,)*(([a-z0-9]+){1});)?(group=([a-z0-9]+,)*(([a-z0-9]+){1});)?(level=[0-9]+;)?$"     "blahh"
   1562 "^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$"   G "<0>(+44)(0)20-12341234</0>"
   1563 "^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$"   G "<0>02012341234</0>"
   1564 "^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$"   G "<0>+44 (0) 1234-1234</0>"
   1565 "^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$"     "(44+)020-12341234"
   1566 "^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$"     "12341234(+020)"
   1567 "\b(\w+)\s+\1\b"   G "<0>Tell the the preacher</0>"
   1568 "\b(\w+)\s+\1\b"   G "<0>some some</0>"
   1569 "\b(\w+)\s+\1\b"   G "<0>hubba hubba</0>"
   1570 "\b(\w+)\s+\1\b"     "once an annual report"
   1571 "\b(\w+)\s+\1\b"     "mandate dated submissions"
   1572 "\b(\w+)\s+\1\b"     "Hubba hubba"
   1573 "(^\+[0-9]{2}|^\+[0-9]{2}\(0\)|^\(\+[0-9]{2}\)\(0\)|^00[0-9]{2}|^0)([0-9]{9}$|[0-9\-\s]{10}$)"   G "<0>+31235256677</0>"
   1574 "(^\+[0-9]{2}|^\+[0-9]{2}\(0\)|^\(\+[0-9]{2}\)\(0\)|^00[0-9]{2}|^0)([0-9]{9}$|[0-9\-\s]{10}$)"   G "<0>+31(0)235256677</0>"
   1575 "(^\+[0-9]{2}|^\+[0-9]{2}\(0\)|^\(\+[0-9]{2}\)\(0\)|^00[0-9]{2}|^0)([0-9]{9}$|[0-9\-\s]{10}$)"   G "<0>023-5256677</0>"
   1576 "(^\+[0-9]{2}|^\+[0-9]{2}\(0\)|^\(\+[0-9]{2}\)\(0\)|^00[0-9]{2}|^0)([0-9]{9}$|[0-9\-\s]{10}$)"     "+3123525667788999"
   1577 "(^\+[0-9]{2}|^\+[0-9]{2}\(0\)|^\(\+[0-9]{2}\)\(0\)|^00[0-9]{2}|^0)([0-9]{9}$|[0-9\-\s]{10}$)"     "3123525667788"
   1578 "(^\+[0-9]{2}|^\+[0-9]{2}\(0\)|^\(\+[0-9]{2}\)\(0\)|^00[0-9]{2}|^0)([0-9]{9}$|[0-9\-\s]{10}$)"     "232-2566778"
   1579 "^[-+]?\d*\.?\d*$"   G "<0>123</0>"
   1580 "^[-+]?\d*\.?\d*$"   G "<0>+3.14159</0>"
   1581 "^[-+]?\d*\.?\d*$"   G "<0>-3.14159</0>"
   1582 "^[-+]?\d*\.?\d*$"     "abc"
   1583 "^[-+]?\d*\.?\d*$"     "3.4.5"
   1584 "^[-+]?\d*\.?\d*$"     "$99.95"
   1585 "^\$?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,}(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$"   G "<0>$1,234.50</0>"
   1586 "^\$?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,}(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$"   G "<0>$0.70</0>"
   1587 "^\$?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,}(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$"   G "<0>.7</0>"
   1588 "^\$?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,}(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$"     "$0,123.50"
   1589 "^\$?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,}(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$"     "$00.5"
   1590 "^[A-Z]{2}[0-9]{6}[A-DFM]{1}$"   G "<0>AB123456D</0>"
   1591 "^[A-Z]{2}[0-9]{6}[A-DFM]{1}$"   G "<0>AB123456F</0>"
   1592 "^[A-Z]{2}[0-9]{6}[A-DFM]{1}$"   G "<0>AB123456M</0>"
   1593 "^[A-Z]{2}[0-9]{6}[A-DFM]{1}$"     "AB123456E"
   1594 "^[A-Z]{2}[0-9]{6}[A-DFM]{1}$"     "ab123456d"
   1595 #"(http|ftp|https):\/\/[\w]+(.[\w]+)([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?"   G "<0>http://regxlib.com/Default.aspx</0>"     # TODO:  \w in pattern
   1596 #"(http|ftp|https):\/\/[\w]+(.[\w]+)([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?"   G "<0>http://electronics.cnet.com/electronics/0-6342366-8-8994967-1.html</0>"     # TODO:  \w in pattern
   1597 #"(http|ftp|https):\/\/[\w]+(.[\w]+)([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?"     "www.yahoo.com"     # TODO:  \w in pattern
   1598 "^[0-9]{4}\s{0,1}[a-zA-Z]{2}$"   G "<0>2034AK</0>"
   1599 "^[0-9]{4}\s{0,1}[a-zA-Z]{2}$"   G "<0>2034 AK</0>"
   1600 "^[0-9]{4}\s{0,1}[a-zA-Z]{2}$"   G "<0>2034 ak</0>"
   1601 "^[0-9]{4}\s{0,1}[a-zA-Z]{2}$"     "2034     AK"
   1602 "^[0-9]{4}\s{0,1}[a-zA-Z]{2}$"     "321321 AKSSAA"
   1603 "((\d{2})|(\d))\/((\d{2})|(\d))\/((\d{4})|(\d{2}))"   G "<0>4/5/91</0>"
   1604 "((\d{2})|(\d))\/((\d{2})|(\d))\/((\d{4})|(\d{2}))"   G "<0>04/5/1991</0>"
   1605 "((\d{2})|(\d))\/((\d{2})|(\d))\/((\d{4})|(\d{2}))"   G "<0>4/05/89</0>"
   1606 "((\d{2})|(\d))\/((\d{2})|(\d))\/((\d{4})|(\d{2}))"     "4/5/1"
   1607 #"(^|\s|\()((([1-9]){1}|([0][1-9]){1}|([1][012]){1}){1}[\/-]((2[0-9]){1}|(3[01]){1}|([01][1-9]){1}|([1-9]){1}){1}[\/-](((19|20)([0-9][0-9]){1}|([0-9][0-9]){1})){1}(([\s|\)|:])|(^|\s|\()((([0-9]){1}|([0][1-9]){1}|([1][012]){1}){1}[\/-](([11-31]){1}|([01][1-9]){1}|([1-9]){1}){1}[\/-](((19|20)([0-9][0-9]){1}|([0-9][0-9]){1})){1}(([\s|\)|:|$|\>])){1}){1}){1}){1}"   G "<0>01/01/2001 </0>"   #TODO - \s in pattern.
   1608 "(^|\s|\()((([1-9]){1}|([0][1-9]){1}|([1][012]){1}){1}[\/-]((2[0-9]){1}|(3[01]){1}|([01][1-9]){1}|([1-9]){1}){1}[\/-](((19|20)([0-9][0-9]){1}|([0-9][0-9]){1})){1}(([\s|\)|:])|(^|\s|\()((([0-9]){1}|([0][1-9]){1}|([1][012]){1}){1}[\/-](([11-31]){1}|([01][1-9]){1}|([1-9]){1}){1}[\/-](((19|20)([0-9][0-9]){1}|([0-9][0-9]){1})){1}(([\s|\)|:|$|\>])){1}){1}){1}){1}"   G "<0>01-01-2001:</0>"
   1609 "(^|\s|\()((([1-9]){1}|([0][1-9]){1}|([1][012]){1}){1}[\/-]((2[0-9]){1}|(3[01]){1}|([01][1-9]){1}|([1-9]){1}){1}[\/-](((19|20)([0-9][0-9]){1}|([0-9][0-9]){1})){1}(([\s|\)|:])|(^|\s|\()((([0-9]){1}|([0][1-9]){1}|([1][012]){1}){1}[\/-](([11-31]){1}|([01][1-9]){1}|([1-9]){1}){1}[\/-](((19|20)([0-9][0-9]){1}|([0-9][0-9]){1})){1}(([\s|\)|:|$|\>])){1}){1}){1}){1}"   G "<0>(1-1-01)</0>"
   1610 "(^|\s|\()((([1-9]){1}|([0][1-9]){1}|([1][012]){1}){1}[\/-]((2[0-9]){1}|(3[01]){1}|([01][1-9]){1}|([1-9]){1}){1}[\/-](((19|20)([0-9][0-9]){1}|([0-9][0-9]){1})){1}(([\s|\)|:])|(^|\s|\()((([0-9]){1}|([0][1-9]){1}|([1][012]){1}){1}[\/-](([11-31]){1}|([01][1-9]){1}|([1-9]){1}){1}[\/-](((19|20)([0-9][0-9]){1}|([0-9][0-9]){1})){1}(([\s|\)|:|$|\>])){1}){1}){1}){1}"     "13/1/2001"
   1611 "(^|\s|\()((([1-9]){1}|([0][1-9]){1}|([1][012]){1}){1}[\/-]((2[0-9]){1}|(3[01]){1}|([01][1-9]){1}|([1-9]){1}){1}[\/-](((19|20)([0-9][0-9]){1}|([0-9][0-9]){1})){1}(([\s|\)|:])|(^|\s|\()((([0-9]){1}|([0][1-9]){1}|([1][012]){1}){1}[\/-](([11-31]){1}|([01][1-9]){1}|([1-9]){1}){1}[\/-](((19|20)([0-9][0-9]){1}|([0-9][0-9]){1})){1}(([\s|\)|:|$|\>])){1}){1}){1}){1}"     "1-32-2001"
   1612 "(^|\s|\()((([1-9]){1}|([0][1-9]){1}|([1][012]){1}){1}[\/-]((2[0-9]){1}|(3[01]){1}|([01][1-9]){1}|([1-9]){1}){1}[\/-](((19|20)([0-9][0-9]){1}|([0-9][0-9]){1})){1}(([\s|\)|:])|(^|\s|\()((([0-9]){1}|([0][1-9]){1}|([1][012]){1}){1}[\/-](([11-31]){1}|([01][1-9]){1}|([1-9]){1}){1}[\/-](((19|20)([0-9][0-9]){1}|([0-9][0-9]){1})){1}(([\s|\)|:|$|\>])){1}){1}){1}){1}"     "1-1-1801"
   1613 "^\d{3}\s?\d{3}$"   G "<0>400 099</0>"
   1614 "^\d{3}\s?\d{3}$"   G "<0>400099</0>"
   1615 "^\d{3}\s?\d{3}$"   G "<0>400050</0>"
   1616 "^\d{3}\s?\d{3}$"     "2345678"
   1617 "^\d{3}\s?\d{3}$"     "12345"
   1618 "^\d{3}\s?\d{3}$"     "asdf"
   1619 "^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$"   G "<0>(111) 222-3333</0>"
   1620 "^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$"   G "<0>1112223333</0>"
   1621 "^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$"   G "<0>111-222-3333</0>"
   1622 "^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$"     "11122223333"
   1623 "^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$"     "11112223333"
   1624 "^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$"     "11122233333"
   1625 "^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$"   G "<0>#00ccff</0>"
   1626 "^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$"   G "<0>#039</0>"
   1627 "^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$"   G "<0>ffffcc</0>"
   1628 "^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$"     "blue"
   1629 "^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$"     "0x000000"
   1630 "^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$"     "#ff000"
   1631 "^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$"   G "<0>01:23:45:67:89:ab</0>"
   1632 "^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$"   G "<0>01:23:45:67:89:AB</0>"
   1633 "^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$"   G "<0>fE:dC:bA:98:76:54</0>"
   1634 "^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$"     "01:23:45:67:89:ab:cd"
   1635 "^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$"     "01:23:45:67:89:Az"
   1636 "^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$"     "01:23:45:56:"
   1637 "^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+\&%\$#\=~])*$"   G "<0>http://www.blah.com/~joe</0>"
   1638 "^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+\&%\$#\=~])*$"   G "<0>ftp://ftp.blah.co.uk:2828/blah%20blah.gif</0>"
   1639 "^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+\&%\$#\=~])*$"   G "<0>https://blah.gov/blah-blah.as</0>"
   1640 "^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+\&%\$#\=~])*$"     "www.blah.com"
   1641 "^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+\&%\$#\=~])*$"     "http://www.blah.com/I have spaces!"
   1642 "^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+\&%\$#\=~])*$"     "ftp://blah_underscore/[nope]"
   1643 "^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[2][0]\d{2})$|^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[2][0]\d{2}\s([0-1]\d|[2][0-3])\:[0-5]\d\:[0-5]\d)$"   G "<0>12/01/2002</0>"
   1644 "^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[2][0]\d{2})$|^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[2][0]\d{2}\s([0-1]\d|[2][0-3])\:[0-5]\d\:[0-5]\d)$"   G "<0>12/01/2002 12:32:10</0>"
   1645 "^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[2][0]\d{2})$|^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[2][0]\d{2}\s([0-1]\d|[2][0-3])\:[0-5]\d\:[0-5]\d)$"     "32/12/2002"
   1646 "^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[2][0]\d{2})$|^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[2][0]\d{2}\s([0-1]\d|[2][0-3])\:[0-5]\d\:[0-5]\d)$"     "12/13/2001"
   1647 "^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[2][0]\d{2})$|^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[2][0]\d{2}\s([0-1]\d|[2][0-3])\:[0-5]\d\:[0-5]\d)$"     "12/02/06"
   1648 "^[0-9](\.[0-9]+)?$"   G "<0>1.2345</0>"
   1649 "^[0-9](\.[0-9]+)?$"   G "<0>0.00001</0>"
   1650 "^[0-9](\.[0-9]+)?$"   G "<0>7</0>"
   1651 "^[0-9](\.[0-9]+)?$"     "12.2"
   1652 "^[0-9](\.[0-9]+)?$"     "1.10.1"
   1653 "^[0-9](\.[0-9]+)?$"     "15.98"
   1654 "^(?:[mM]{1,3})?(?:(?:[cC][dDmM])|(?:[dD]?(?:[cC]{1,3})?))?[lL]?(([xX])(?:\2{1,2}|[lL]|[cC])?)?((([iI])((\5{1,2})|[vV]|[xX]|[lL])?)|([vV]?([iI]{1,3})?))?$"   G "<0>III</0>"
   1655 "^(?:[mM]{1,3})?(?:(?:[cC][dDmM])|(?:[dD]?(?:[cC]{1,3})?))?[lL]?(([xX])(?:\2{1,2}|[lL]|[cC])?)?((([iI])((\5{1,2})|[vV]|[xX]|[lL])?)|([vV]?([iI]{1,3})?))?$"   G "<0>xiv</0>"
   1656 "^(?:[mM]{1,3})?(?:(?:[cC][dDmM])|(?:[dD]?(?:[cC]{1,3})?))?[lL]?(([xX])(?:\2{1,2}|[lL]|[cC])?)?((([iI])((\5{1,2})|[vV]|[xX]|[lL])?)|([vV]?([iI]{1,3})?))?$"   G "<0>MCMLXLIX</0>"
   1657 "^(?:[mM]{1,3})?(?:(?:[cC][dDmM])|(?:[dD]?(?:[cC]{1,3})?))?[lL]?(([xX])(?:\2{1,2}|[lL]|[cC])?)?((([iI])((\5{1,2})|[vV]|[xX]|[lL])?)|([vV]?([iI]{1,3})?))?$"     "iiV"
   1658 "^(?:[mM]{1,3})?(?:(?:[cC][dDmM])|(?:[dD]?(?:[cC]{1,3})?))?[lL]?(([xX])(?:\2{1,2}|[lL]|[cC])?)?((([iI])((\5{1,2})|[vV]|[xX]|[lL])?)|([vV]?([iI]{1,3})?))?$"     "MCCM"
   1659 "^(?:[mM]{1,3})?(?:(?:[cC][dDmM])|(?:[dD]?(?:[cC]{1,3})?))?[lL]?(([xX])(?:\2{1,2}|[lL]|[cC])?)?((([iI])((\5{1,2})|[vV]|[xX]|[lL])?)|([vV]?([iI]{1,3})?))?$"     "XXXX"
   1660 "^[-+]?[0-9]+[.]?[0-9]*([eE][-+]?[0-9]+)?$"   G "<0>123</0>"
   1661 "^[-+]?[0-9]+[.]?[0-9]*([eE][-+]?[0-9]+)?$"   G "<0>-123.35</0>"
   1662 "^[-+]?[0-9]+[.]?[0-9]*([eE][-+]?[0-9]+)?$"   G "<0>-123.35e-2</0>"
   1663 "^[-+]?[0-9]+[.]?[0-9]*([eE][-+]?[0-9]+)?$"     "abc"
   1664 "^[-+]?[0-9]+[.]?[0-9]*([eE][-+]?[0-9]+)?$"     "123.32e"
   1665 "^[-+]?[0-9]+[.]?[0-9]*([eE][-+]?[0-9]+)?$"     "123.32.3"
   1666 "^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$"   G "<0>T.F. Johnson</0>"
   1667 "^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$"   G "<0>John O'Neil</0>"
   1668 "^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$"   G "<0>Mary-Kate Johnson</0>"
   1669 "^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$"     "sam_johnson"
   1670 "^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$"     "Joe--Bob Jones"
   1671 "^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$"     "dfjsd0rd"
   1672 "^(20|21|22|23|[0-1]\d)[0-5]\d$"   G "<0>1200</0>"
   1673 "^(20|21|22|23|[0-1]\d)[0-5]\d$"   G "<0>1645</0>"
   1674 "^(20|21|22|23|[0-1]\d)[0-5]\d$"   G "<0>2359</0>"
   1675 "^(20|21|22|23|[0-1]\d)[0-5]\d$"     "2400"
   1676 "^(20|21|22|23|[0-1]\d)[0-5]\d$"     "asbc"
   1677 "^(20|21|22|23|[0-1]\d)[0-5]\d$"     "12:45"
   1678 /<[^>]*\n?.*=("|')?(.*\.jpg)("|')?.*\n?[^<]*>/   G '<0><td background="../img/img.jpg" ></0>'
   1679 /<[^>]*\n?.*=("|')?(.*\.jpg)("|')?.*\n?[^<]*>/   G "<0><img src=img.jpg ></0>"
   1680 /<[^>]*\n?.*=("|')?(.*\.jpg)("|')?.*\n?[^<]*>/   G "<0><img src='img.jpg'></0>"
   1681 /<[^>]*\n?.*=("|')?(.*\.jpg)("|')?.*\n?[^<]*>/     "= img.jpg"
   1682 /<[^>]*\n?.*=("|')?(.*\.jpg)("|')?.*\n?[^<]*>/     "img.jpg"
   1683 "^(\d{5}-\d{4}|\d{5})$|^([a-zA-Z]\d[a-zA-Z] \d[a-zA-Z]\d)$"   G "<0>78754</0>"
   1684 "^(\d{5}-\d{4}|\d{5})$|^([a-zA-Z]\d[a-zA-Z] \d[a-zA-Z]\d)$"   G "<0>78754-1234</0>"
   1685 "^(\d{5}-\d{4}|\d{5})$|^([a-zA-Z]\d[a-zA-Z] \d[a-zA-Z]\d)$"   G "<0>G3H 6A3</0>"
   1686 "^(\d{5}-\d{4}|\d{5})$|^([a-zA-Z]\d[a-zA-Z] \d[a-zA-Z]\d)$"     "78754-12aA"
   1687 "^(\d{5}-\d{4}|\d{5})$|^([a-zA-Z]\d[a-zA-Z] \d[a-zA-Z]\d)$"     "7875A"
   1688 "^(\d{5}-\d{4}|\d{5})$|^([a-zA-Z]\d[a-zA-Z] \d[a-zA-Z]\d)$"     "g3h6a3"
   1689 #"^([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))$"   G "<0>bob@somewhere.com</0>"    # TODO:  \w in pattern
   1690 #"^([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))$"   G "<0>bob.jones@[1.1.1.1]</0   # TODO:  \w in pattern>"
   1691 #"^([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))$"   G "<0>bob@a.b.c.d.info</0>"   # TODO:  \w in pattern
   1692 #"^([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))$"     "bob@com"   # TODO:  \w in pattern
   1693 #"^([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))$"     "bob.jones@some.where"   # TODO:  \w in pattern
   1694 #"^([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))$"     "bob@1.1.1.123"   # TODO:  \w in pattern
   1695 #"^(([-\w \.]+)|(""[-\w \.]+"") )?<([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))>$"   G "<0><ab@cd.ef></0>"   # TODO:  \w in pattern
   1696 #"^(([-\w \.]+)|(""[-\w \.]+"") )?<([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))>$"   G "<0>bob A. jones <ab@cd.ef></0>"   # TODO:  \w in pattern
   1697 #"^(([-\w \.]+)|(""[-\w \.]+"") )?<([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))>$"   G "<0>bob A. jones <ab@[1.1.1.111]></0>"   # TODO:  \w in pattern
   1698 #"^(([-\w \.]+)|(""[-\w \.]+"") )?<([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))>$"     "ab@cd.ef"   # TODO:  \w in pattern
   1699 #"^(([-\w \.]+)|(""[-\w \.]+"") )?<([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))>$"     ""bob A. jones <ab@cd.ef>"   # TODO:  \w in pattern
   1700 #"^(([-\w \.]+)|(""[-\w \.]+"") )?<([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))>$"     "bob A. jones <ab@1.1.1.111>"   # TODO:  \w in pattern
   1701 "^[A-Za-z]{1,2}[0-9A-Za-z]{1,2}[ ]?[0-9]{0,1}[A-Za-z]{2}$"   G "<0>SW112LE</0>"
   1702 "^[A-Za-z]{1,2}[0-9A-Za-z]{1,2}[ ]?[0-9]{0,1}[A-Za-z]{2}$"   G "<0>SW11 2LE</0>"
   1703 "^[A-Za-z]{1,2}[0-9A-Za-z]{1,2}[ ]?[0-9]{0,1}[A-Za-z]{2}$"   G "<0>CR05LE</0>"
   1704 "^[A-Za-z]{1,2}[0-9A-Za-z]{1,2}[ ]?[0-9]{0,1}[A-Za-z]{2}$"     "12CR0LE"
   1705 "^[A-Za-z]{1,2}[0-9A-Za-z]{1,2}[ ]?[0-9]{0,1}[A-Za-z]{2}$"     "12CR 0LE"
   1706 "^[A-Za-z]{1,2}[0-9A-Za-z]{1,2}[ ]?[0-9]{0,1}[A-Za-z]{2}$"     "SWLE05"
   1707 "20\d{2}(-|\/)((0[1-9])|(1[0-2]))(-|\/)((0[1-9])|([1-2][0-9])|(3[0-1]))(T|\s)(([0-1][0-9])|(2[0-3])):([0-5][0-9]):([0-5][0-9])"   G "<0>2099-12-31T23:59:59</0>"
   1708 "20\d{2}(-|\/)((0[1-9])|(1[0-2]))(-|\/)((0[1-9])|([1-2][0-9])|(3[0-1]))(T|\s)(([0-1][0-9])|(2[0-3])):([0-5][0-9]):([0-5][0-9])"   G "<0>2002/02/09 16:30:00</0>"
   1709 "20\d{2}(-|\/)((0[1-9])|(1[0-2]))(-|\/)((0[1-9])|([1-2][0-9])|(3[0-1]))(T|\s)(([0-1][0-9])|(2[0-3])):([0-5][0-9]):([0-5][0-9])"   G "<0>2000-01-01T00:00:00</0>"
   1710 "20\d{2}(-|\/)((0[1-9])|(1[0-2]))(-|\/)((0[1-9])|([1-2][0-9])|(3[0-1]))(T|\s)(([0-1][0-9])|(2[0-3])):([0-5][0-9]):([0-5][0-9])"     "2000-13-31T00:00:00"
   1711 "20\d{2}(-|\/)((0[1-9])|(1[0-2]))(-|\/)((0[1-9])|([1-2][0-9])|(3[0-1]))(T|\s)(([0-1][0-9])|(2[0-3])):([0-5][0-9]):([0-5][0-9])"     "2002/02/33 24:00:00"
   1712 "20\d{2}(-|\/)((0[1-9])|(1[0-2]))(-|\/)((0[1-9])|([1-2][0-9])|(3[0-1]))(T|\s)(([0-1][0-9])|(2[0-3])):([0-5][0-9]):([0-5][0-9])"     "2000-01-01 60:00:00"
   1713 "^((?:4\d{3})|(?:5[1-5]\d{2})|(?:6011)|(?:3[68]\d{2})|(?:30[012345]\d))[ -]?(\d{4})[ -]?(\d{4})[ -]?(\d{4}|3[4,7]\d{13})$"   G "<0>6011567812345678</0>"
   1714 "^((?:4\d{3})|(?:5[1-5]\d{2})|(?:6011)|(?:3[68]\d{2})|(?:30[012345]\d))[ -]?(\d{4})[ -]?(\d{4})[ -]?(\d{4}|3[4,7]\d{13})$"   G "<0>6011 5678 1234 5678</0>"
   1715 "^((?:4\d{3})|(?:5[1-5]\d{2})|(?:6011)|(?:3[68]\d{2})|(?:30[012345]\d))[ -]?(\d{4})[ -]?(\d{4})[ -]?(\d{4}|3[4,7]\d{13})$"   G "<0>6011-5678-1234-5678</0>"
   1716 "^((?:4\d{3})|(?:5[1-5]\d{2})|(?:6011)|(?:3[68]\d{2})|(?:30[012345]\d))[ -]?(\d{4})[ -]?(\d{4})[ -]?(\d{4}|3[4,7]\d{13})$"     "1234567890123456"
   1717 "^((((0[13578])|(1[02]))[\/]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\/]?(([0-2][0-9])|(30)))|(02[\/]?[0-2][0-9]))[\/]?\d{4}$"   G "<0>01/01/2001</0>"
   1718 "^((((0[13578])|(1[02]))[\/]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\/]?(([0-2][0-9])|(30)))|(02[\/]?[0-2][0-9]))[\/]?\d{4}$"   G "<0>02/29/2002</0>"
   1719 "^((((0[13578])|(1[02]))[\/]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\/]?(([0-2][0-9])|(30)))|(02[\/]?[0-2][0-9]))[\/]?\d{4}$"   G "<0>12/31/2002</0>"
   1720 "^((((0[13578])|(1[02]))[\/]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\/]?(([0-2][0-9])|(30)))|(02[\/]?[0-2][0-9]))[\/]?\d{4}$"     "1/1/02"
   1721 "^((((0[13578])|(1[02]))[\/]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\/]?(([0-2][0-9])|(30)))|(02[\/]?[0-2][0-9]))[\/]?\d{4}$"     "02/30/2002"
   1722 "^((((0[13578])|(1[02]))[\/]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\/]?(([0-2][0-9])|(30)))|(02[\/]?[0-2][0-9]))[\/]?\d{4}$"     "1/25/2002"
   1723 #"^(?=[^\&])(?:(?<scheme>[^:/?#]+):)?(?://(?<authority>[^/?#]*))?(?<path>[^?#]*)(?:\?(?<query>[^#]*))?(?:#(?<fragment>.*))?"   G "<0>http://regexlib.com/REDetails.aspx?regexp_id=x#Details</0>"  # out of context, can't work stand-alone
   1724 #"^(?=[^\&])(?:(?<scheme>[^:/?#]+):)?(?://(?<authority>[^/?#]*))?(?<path>[^?#]*)(?:\?(?<query>[^#]*))?(?:#(?<fragment>.*))?"     "&"           # out of context, can't work stand-alone
   1725 "^[-+]?\d+(\.\d+)?$"   G "<0>123</0>"
   1726 "^[-+]?\d+(\.\d+)?$"   G "<0>-123.45</0>"
   1727 "^[-+]?\d+(\.\d+)?$"   G "<0>+123.56</0>"
   1728 "^[-+]?\d+(\.\d+)?$"     "123x"
   1729 "^[-+]?\d+(\.\d+)?$"     ".123"
   1730 "^[-+]?\d+(\.\d+)?$"     "-123."
   1731 "^(\d{4}[- ]){3}\d{4}|\d{16}$"   G "<0>1234-1234-1234-1234</0>"
   1732 "^(\d{4}[- ]){3}\d{4}|\d{16}$"   G "<0>1234 1234 1234 1234</0>"
   1733 "^(\d{4}[- ]){3}\d{4}|\d{16}$"   G "<0>1234123412341234</0>"
   1734 "^(\d{4}[- ]){3}\d{4}|\d{16}$"     "Visa"
   1735 "^(\d{4}[- ]){3}\d{4}|\d{16}$"     "1234"
   1736 "^(\d{4}[- ]){3}\d{4}|\d{16}$"     "123-1234-12345"
   1737 "^((4\d{3})|(5[1-5]\d{2})|(6011))-?\d{4}-?\d{4}-?\d{4}|3[4,7]\d{13}$"   G "<0>6011-1111-1111-1111</0>"
   1738 "^((4\d{3})|(5[1-5]\d{2})|(6011))-?\d{4}-?\d{4}-?\d{4}|3[4,7]\d{13}$"   G "<0>5423-1111-1111-1111</0>"
   1739 "^((4\d{3})|(5[1-5]\d{2})|(6011))-?\d{4}-?\d{4}-?\d{4}|3[4,7]\d{13}$"   G "<0>341111111111111</0>"
   1740 "^((4\d{3})|(5[1-5]\d{2})|(6011))-?\d{4}-?\d{4}-?\d{4}|3[4,7]\d{13}$"     "4111-111-111-111"
   1741 "^((4\d{3})|(5[1-5]\d{2})|(6011))-?\d{4}-?\d{4}-?\d{4}|3[4,7]\d{13}$"     "3411-1111-1111-111"
   1742 "^((4\d{3})|(5[1-5]\d{2})|(6011))-?\d{4}-?\d{4}-?\d{4}|3[4,7]\d{13}$"     "Visa"
   1743 "^[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}$"   G "<0>4D28C5AD-6482-41CD-B84E-4573F384BB5C</0>"
   1744 "^[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}$"   G "<0>B1E1282C-A35C-4D5A-BF8B-7A3A51D9E388</0>"
   1745 "^[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}$"   G "91036A4A-A0F4-43F0-8CD"
   1746 "^[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}$"     "{B1E1282C-A35C-4D3A-BF8B-7A3A51D9E388}"
   1747 "^[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}$"     "AAAAAAAAAAAAAAAAA"
   1748 "^[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}$"     "B;E1282C-A35C-4D3A-BF8B-7A3A51D9E38"
   1749 "(^(4|5)\d{3}-?\d{4}-?\d{4}-?\d{4}|(4|5)\d{15})|(^(6011)-?\d{4}-?\d{4}-?\d{4}|(6011)-?\d{12})|(^((3\d{3}))-\d{6}-\d{5}|^((3\d{14})))"   G "<0>4111-1234-1234-1234</0>"
   1750 "(^(4|5)\d{3}-?\d{4}-?\d{4}-?\d{4}|(4|5)\d{15})|(^(6011)-?\d{4}-?\d{4}-?\d{4}|(6011)-?\d{12})|(^((3\d{3}))-\d{6}-\d{5}|^((3\d{14})))"   G "<0>6011123412341234</0>"
   1751 "(^(4|5)\d{3}-?\d{4}-?\d{4}-?\d{4}|(4|5)\d{15})|(^(6011)-?\d{4}-?\d{4}-?\d{4}|(6011)-?\d{12})|(^((3\d{3}))-\d{6}-\d{5}|^((3\d{14})))"   G "<0>3711-123456-12345</0>"
   1752 "(^(4|5)\d{3}-?\d{4}-?\d{4}-?\d{4}|(4|5)\d{15})|(^(6011)-?\d{4}-?\d{4}-?\d{4}|(6011)-?\d{12})|(^((3\d{3}))-\d{6}-\d{5}|^((3\d{14})))"     "1234567890123456"
   1753 "(^(4|5)\d{3}-?\d{4}-?\d{4}-?\d{4}|(4|5)\d{15})|(^(6011)-?\d{4}-?\d{4}-?\d{4}|(6011)-?\d{12})|(^((3\d{3}))-\d{6}-\d{5}|^((3\d{14})))"     "4111-123-1234-1234"
   1754 "(^(4|5)\d{3}-?\d{4}-?\d{4}-?\d{4}|(4|5)\d{15})|(^(6011)-?\d{4}-?\d{4}-?\d{4}|(6011)-?\d{12})|(^((3\d{3}))-\d{6}-\d{5}|^((3\d{14})))"     "412-1234-1234-1234"
   1755 #'\[link="(?<link>((.|\n)*?))"\](?<text>((.|\n)*?))\[\/link\]'   G '<0>[link="http://www.yahoo.com"]Yahoo[/link]</0>'   #named capture
   1756 #'\[link="(?<link>((.|\n)*?))"\](?<text>((.|\n)*?))\[\/link\]'     "[link]http://www.yahoo.com[/link]"                  #named capture
   1757 #'\[link="(?<link>((.|\n)*?))"\](?<text>((.|\n)*?))\[\/link\]'     "[link=http://www.yahoo.com]Yahoo[/link]"            #named capture
   1758 "^[a-zA-Z0-9]+$"   G "<0>10a</0>"
   1759 "^[a-zA-Z0-9]+$"   G "<0>ABC</0>"
   1760 "^[a-zA-Z0-9]+$"   G "<0>A3fg</0>"
   1761 "^[a-zA-Z0-9]+$"     "45.3"
   1762 "^[a-zA-Z0-9]+$"     "this or that"
   1763 "^[a-zA-Z0-9]+$"     "$23"
   1764 "((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}"   G "<0>(123) 456-7890</0>"
   1765 "((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}"   G "<0>123-456-7890</0>"
   1766 "((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}"     "1234567890"
   1767 "^[a-zA-Z]\w{3,14}$"   G "<0>abcd</0>"
   1768 "^[a-zA-Z]\w{3,14}$"   G "<0>aBc45DSD_sdf</0>"
   1769 "^[a-zA-Z]\w{3,14}$"   G "<0>password</0>"
   1770 "^[a-zA-Z]\w{3,14}$"     "afv"
   1771 "^[a-zA-Z]\w{3,14}$"     "1234"
   1772 "^[a-zA-Z]\w{3,14}$"     "reallylongpassword"
   1773 "^[A-Z]{1,2}[1-9][0-9]?[A-Z]? [0-9][A-Z]{2,}|GIR 0AA$"   G "<0>G1 1AA </0>"
   1774 "^[A-Z]{1,2}[1-9][0-9]?[A-Z]? [0-9][A-Z]{2,}|GIR 0AA$"   G "<0>GIR 0AA</0>"
   1775 "^[A-Z]{1,2}[1-9][0-9]?[A-Z]? [0-9][A-Z]{2,}|GIR 0AA$"   G "<0>SW1 1ZZ</0>"
   1776 "^[A-Z]{1,2}[1-9][0-9]?[A-Z]? [0-9][A-Z]{2,}|GIR 0AA$"     "BT01 3RT"
   1777 "^[A-Z]{1,2}[1-9][0-9]?[A-Z]? [0-9][A-Z]{2,}|GIR 0AA$"     "G111 1AA"
   1778 "^0[23489]{1}(\-)?[^0\D]{1}\d{6}$"   G "<0>03-6106666</0>"
   1779 "^0[23489]{1}(\-)?[^0\D]{1}\d{6}$"   G "<0>036106666</0>"
   1780 "^0[23489]{1}(\-)?[^0\D]{1}\d{6}$"   G "<0>02-5523344</0>"
   1781 "^0[23489]{1}(\-)?[^0\D]{1}\d{6}$"     "00-6106666"
   1782 "^0[23489]{1}(\-)?[^0\D]{1}\d{6}$"     "03-0106666"
   1783 "^0[23489]{1}(\-)?[^0\D]{1}\d{6}$"     "02-55812346"
   1784 "^0(5[012345678]|6[47]){1}(\-)?[^0\D]{1}\d{5}$"   G "<0>050-346634</0>"
   1785 "^0(5[012345678]|6[47]){1}(\-)?[^0\D]{1}\d{5}$"   G "<0>058633633</0>"
   1786 "^0(5[012345678]|6[47]){1}(\-)?[^0\D]{1}\d{5}$"   G "<0>064-228226</0>"
   1787 "^0(5[012345678]|6[47]){1}(\-)?[^0\D]{1}\d{5}$"     "059-336622"
   1788 "^0(5[012345678]|6[47]){1}(\-)?[^0\D]{1}\d{5}$"     "064-022663"
   1789 "^0(5[012345678]|6[47]){1}(\-)?[^0\D]{1}\d{5}$"     "0545454545"
   1790 "^([A-Z]{1,2}[0-9]{1,2}|[A-Z]{3}|[A-Z]{1,2}[0-9][A-Z])( |-)[0-9][A-Z]{2}"   G "<0>AA11 1AA</0>"
   1791 "^([A-Z]{1,2}[0-9]{1,2}|[A-Z]{3}|[A-Z]{1,2}[0-9][A-Z])( |-)[0-9][A-Z]{2}"   G "<0>AA1A 1AA</0>"
   1792 "^([A-Z]{1,2}[0-9]{1,2}|[A-Z]{3}|[A-Z]{1,2}[0-9][A-Z])( |-)[0-9][A-Z]{2}"   G "<0>A11-1AA</0>"
   1793 "^([A-Z]{1,2}[0-9]{1,2}|[A-Z]{3}|[A-Z]{1,2}[0-9][A-Z])( |-)[0-9][A-Z]{2}"     "111 AAA"
   1794 "^([A-Z]{1,2}[0-9]{1,2}|[A-Z]{3}|[A-Z]{1,2}[0-9][A-Z])( |-)[0-9][A-Z]{2}"     "1AAA 1AA"
   1795 "^([A-Z]{1,2}[0-9]{1,2}|[A-Z]{3}|[A-Z]{1,2}[0-9][A-Z])( |-)[0-9][A-Z]{2}"     "A1AA 1AA"
   1796 "@{2}((\S)+)@{2}"   G "<0>@@test@@</0>"
   1797 "@{2}((\S)+)@{2}"   G "<0>@@name@@</0>"
   1798 "@{2}((\S)+)@{2}"   G "<0>@@2342@@</0>"
   1799 "@{2}((\S)+)@{2}"     "@test@"
   1800 "@{2}((\S)+)@{2}"     "@@na me@@"
   1801 "@{2}((\S)+)@{2}"     "@@ name@@"
   1802 "([0-1][0-9]|2[0-3]):[0-5][0-9]"   G "<0>00:00</0>"
   1803 "([0-1][0-9]|2[0-3]):[0-5][0-9]"   G "<0>13:59</0>"
   1804 "([0-1][0-9]|2[0-3]):[0-5][0-9]"   G "<0>23:59</0>"
   1805 "([0-1][0-9]|2[0-3]):[0-5][0-9]"     "24:00"
   1806 "([0-1][0-9]|2[0-3]):[0-5][0-9]"     "23:60"
   1807 "^[+-]?([0-9]*\.?[0-9]+|[0-9]+\.?[0-9]*)([eE][+-]?[0-9]+)?$"   G "<0>23</0>"
   1808 "^[+-]?([0-9]*\.?[0-9]+|[0-9]+\.?[0-9]*)([eE][+-]?[0-9]+)?$"   G "<0>-17.e23</0>"
   1809 "^[+-]?([0-9]*\.?[0-9]+|[0-9]+\.?[0-9]*)([eE][+-]?[0-9]+)?$"   G "<0>+.23e+2</0>"
   1810 "^[+-]?([0-9]*\.?[0-9]+|[0-9]+\.?[0-9]*)([eE][+-]?[0-9]+)?$"     "+.e2"
   1811 "^[+-]?([0-9]*\.?[0-9]+|[0-9]+\.?[0-9]*)([eE][+-]?[0-9]+)?$"     "23.17.5"
   1812 "^[+-]?([0-9]*\.?[0-9]+|[0-9]+\.?[0-9]*)([eE][+-]?[0-9]+)?$"     "10e2.0"
   1813 "^([1-zA-Z0-1@.\s ]{1,255})$"   G "<0>email@email.com</0>"
   1814 "^([1-zA-Z0-1@.\s ]{1,255})$"   G "<0>My Name</0>"
   1815 "^([1-zA-Z0-1@.\s ]{1,255})$"   G "<0>asdf12df</0>"
   1816 "^([1-zA-Z0-1@.\s ]{1,255})$"     "‘,\*&$<>"
   1817 "^([1-zA-Z0-1@.\s ]{1,255})$"     "1001' string"
   1818 "^((0[1-9])|(1[0-2]))\/(\d{4})$"   G "<0>12/2002</0>"
   1819 "^((0[1-9])|(1[0-2]))\/(\d{4})$"   G "<0>11/1900</0>"
   1820 "^((0[1-9])|(1[0-2]))\/(\d{4})$"   G "<0>02/1977</0>"
   1821 "^((0[1-9])|(1[0-2]))\/(\d{4})$"     "1/1977"
   1822 "^((0[1-9])|(1[0-2]))\/(\d{4})$"     "00/000"
   1823 "^((0[1-9])|(1[0-2]))\/(\d{4})$"     "15/2002"
   1824 "^\(\d{1,2}(\s\d{1,2}){1,2}\)\s(\d{1,2}(\s\d{1,2}){1,2})((-(\d{1,4})){0,1})$"   G "<0>(0 34 56) 34 56 67</0>"
   1825 "^\(\d{1,2}(\s\d{1,2}){1,2}\)\s(\d{1,2}(\s\d{1,2}){1,2})((-(\d{1,4})){0,1})$"   G "<0>(03 45) 5 67 67</0>"
   1826 "^\(\d{1,2}(\s\d{1,2}){1,2}\)\s(\d{1,2}(\s\d{1,2}){1,2})((-(\d{1,4})){0,1})$"   G "<0>(0 45) 2 33 45-45</0>"
   1827 "^\(\d{1,2}(\s\d{1,2}){1,2}\)\s(\d{1,2}(\s\d{1,2}){1,2})((-(\d{1,4})){0,1})$"     "(2345) 34 34"
   1828 "^\(\d{1,2}(\s\d{1,2}){1,2}\)\s(\d{1,2}(\s\d{1,2}){1,2})((-(\d{1,4})){0,1})$"     "(0 56) 456 456"
   1829 "^\(\d{1,2}(\s\d{1,2}){1,2}\)\s(\d{1,2}(\s\d{1,2}){1,2})((-(\d{1,4})){0,1})$"     "(3 45) 2 34-45678"
   1830 "(?:\d|I{1,3})?\s?\w{2,}\.?\s*\d{1,}\:\d{1,}-?,?\d{0,2}(?:,\d{0,2}){0,2}"   G "<0>Genesis 3:3-4,6</0>"
   1831 "(?:\d|I{1,3})?\s?\w{2,}\.?\s*\d{1,}\:\d{1,}-?,?\d{0,2}(?:,\d{0,2}){0,2}"   G "<0>II Sam 2:11,2</0>"
   1832 "(?:\d|I{1,3})?\s?\w{2,}\.?\s*\d{1,}\:\d{1,}-?,?\d{0,2}(?:,\d{0,2}){0,2}"   G "<0>2 Tim 3:16</0>"
   1833 "(?:\d|I{1,3})?\s?\w{2,}\.?\s*\d{1,}\:\d{1,}-?,?\d{0,2}(?:,\d{0,2}){0,2}"     "Genesis chap 3, verse 3"
   1834 "(?:\d|I{1,3})?\s?\w{2,}\.?\s*\d{1,}\:\d{1,}-?,?\d{0,2}(?:,\d{0,2}){0,2}"     "2nd Samuel 2"
   1835 "(\[[Ii][Mm][Gg]\])(\S+?)(\[\/[Ii][Mm][Gg]\])"   G "<0>[IMG]http://bleh.jpg[/IMG]</0>"
   1836 "(\[[Ii][Mm][Gg]\])(\S+?)(\[\/[Ii][Mm][Gg]\])"   G "<0>[ImG]bleh[/imG]</0>"
   1837 "(\[[Ii][Mm][Gg]\])(\S+?)(\[\/[Ii][Mm][Gg]\])"   G "<0>[img]ftp://login:pass@bleh.gif[/img]</0>"
   1838 "(\[[Ii][Mm][Gg]\])(\S+?)(\[\/[Ii][Mm][Gg]\])"     '<img src="bleh.jpg">'
   1839 "^([0-9]{1,2})[./-]+([0-9]{1,2})[./-]+([0-9]{2}|[0-9]{4})$"   G "<0>10/03/1979</0>"
   1840 "^([0-9]{1,2})[./-]+([0-9]{1,2})[./-]+([0-9]{2}|[0-9]{4})$"   G "<0>1-1-02</0>"
   1841 "^([0-9]{1,2})[./-]+([0-9]{1,2})[./-]+([0-9]{2}|[0-9]{4})$"   G "<0>01.1.2003</0>"
   1842 "^([0-9]{1,2})[./-]+([0-9]{1,2})[./-]+([0-9]{2}|[0-9]{4})$"     "10/03/197"
   1843 "^([0-9]{1,2})[./-]+([0-9]{1,2})[./-]+([0-9]{2}|[0-9]{4})$"     "01-02-003"
   1844 "^([0-9]{1,2})[./-]+([0-9]{1,2})[./-]+([0-9]{2}|[0-9]{4})$"     "01 02 03"
   1845 #"^(?(^00000(|-0000))|(\d{5}(|-\d{4})))$"   G "<0>12345</0>"         # No Conditionals?
   1846 #"^(?(^00000(|-0000))|(\d{5}(|-\d{4})))$"   G "<0>12345-6789</0>"    # No Conditionals?
   1847 #"^(?(^00000(|-0000))|(\d{5}(|-\d{4})))$"     "00000"                # No Conditionals?
   1848 #"^(?(^00000(|-0000))|(\d{5}(|-\d{4})))$"     "00000-0000"           # No Conditionals?
   1849 #"^(?(^00000(|-0000))|(\d{5}(|-\d{4})))$"     "a4650-465s"           # No Conditionals?
   1850 "^((0?[1-9])|((1|2)[0-9])|30|31)$"   G "<0>01</0>"
   1851 "^((0?[1-9])|((1|2)[0-9])|30|31)$"   G "<0>12</0>"
   1852 "^((0?[1-9])|((1|2)[0-9])|30|31)$"   G "<0>31</0>"
   1853 "^((0?[1-9])|((1|2)[0-9])|30|31)$"     "123"
   1854 "^((0?[1-9])|((1|2)[0-9])|30|31)$"     "32"
   1855 "^((0?[1-9])|((1|2)[0-9])|30|31)$"     "abc"
   1856 "^([0-1]([\s\-./\\])?)?(\(?[2-9]\d{2}\)?|[2-9]\d{3})([\s\-./\\])?(\d{3}([\s\-./\\])?\d{4}|[a-zA-Z0-9]{7})$"   G "<0>1.222.333.1234</0>"
   1857 "^([0-1]([\s\-./\\])?)?(\(?[2-9]\d{2}\)?|[2-9]\d{3})([\s\-./\\])?(\d{3}([\s\-./\\])?\d{4}|[a-zA-Z0-9]{7})$"   G "<0>1-223-123-1232</0>"
   1858 "^([0-1]([\s\-./\\])?)?(\(?[2-9]\d{2}\)?|[2-9]\d{3})([\s\-./\\])?(\d{3}([\s\-./\\])?\d{4}|[a-zA-Z0-9]{7})$"   G "<0>12223334444</0>"
   1859 "^([0-1]([\s\-./\\])?)?(\(?[2-9]\d{2}\)?|[2-9]\d{3})([\s\-./\\])?(\d{3}([\s\-./\\])?\d{4}|[a-zA-Z0-9]{7})$"     "1.1.123123.123"
   1860 "^([0-1]([\s\-./\\])?)?(\(?[2-9]\d{2}\)?|[2-9]\d{3})([\s\-./\\])?(\d{3}([\s\-./\\])?\d{4}|[a-zA-Z0-9]{7})$"     "12-1322-112-31"
   1861 "^([0-1]([\s\-./\\])?)?(\(?[2-9]\d{2}\)?|[2-9]\d{3})([\s\-./\\])?(\d{3}([\s\-./\\])?\d{4}|[a-zA-Z0-9]{7})$"     "11231321131"
   1862 "^([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)$"   G "<0>DN3 6GB</0>"
   1863 "^([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)$"   G "<0>SW42 4RG</0>"
   1864 "^([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)$"   G "<0>GIR 0AA</0>"
   1865 "^([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)$"     "SEW4 5TY"
   1866 "^([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)$"     "AA2C 4FG"
   1867 "^([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)$"     "AA2 4CV"
   1868 "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{4,8}$"   G "<0>asD1</0>"
   1869 "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{4,8}$"   G "<0>asDF1234</0>"
   1870 "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{4,8}$"   G "<0>ASPgo123</0>"
   1871 "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{4,8}$"     "asdf"
   1872 "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{4,8}$"     "1234"
   1873 "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{4,8}$"     "ASDF12345"
   1874 "^([0-1]([\s\-./\\])?)?(\(?[2-9]\d{2}\)?|[2-9]\d{3})([\s\-./\\])?([0-9]{3}([\s\-./\\])?[0-9]{4}|[a-zA-Z0-9]{7}|([0-9]{3}[-][a-zA-Z0-9]{4}))"   G "<0>1.222.333.1234</0>"
   1875 "^([0-1]([\s\-./\\])?)?(\(?[2-9]\d{2}\)?|[2-9]\d{3})([\s\-./\\])?([0-9]{3}([\s\-./\\])?[0-9]{4}|[a-zA-Z0-9]{7}|([0-9]{3}[-][a-zA-Z0-9]{4}))"   G "<0>1-223-123-1232</0>"
   1876 "^([0-1]([\s\-./\\])?)?(\(?[2-9]\d{2}\)?|[2-9]\d{3})([\s\-./\\])?([0-9]{3}([\s\-./\\])?[0-9]{4}|[a-zA-Z0-9]{7}|([0-9]{3}[-][a-zA-Z0-9]{4}))"   G "<0>1-888-425-DELL</0>"
   1877 "^([0-1]([\s\-./\\])?)?(\(?[2-9]\d{2}\)?|[2-9]\d{3})([\s\-./\\])?([0-9]{3}([\s\-./\\])?[0-9]{4}|[a-zA-Z0-9]{7}|([0-9]{3}[-][a-zA-Z0-9]{4}))"     "1.1.123123.123"
   1878 "^([0-1]([\s\-./\\])?)?(\(?[2-9]\d{2}\)?|[2-9]\d{3})([\s\-./\\])?([0-9]{3}([\s\-./\\])?[0-9]{4}|[a-zA-Z0-9]{7}|([0-9]{3}[-][a-zA-Z0-9]{4}))"     "12-1322-112-31"
   1879 "^([0-1]([\s\-./\\])?)?(\(?[2-9]\d{2}\)?|[2-9]\d{3})([\s\-./\\])?([0-9]{3}([\s\-./\\])?[0-9]{4}|[a-zA-Z0-9]{7}|([0-9]{3}[-][a-zA-Z0-9]{4}))"     "1-800-CALL-DEL"
   1880 "^(([0]?[1-9]|1[0-2])(:)([0-5][0-9]))$"   G "<0>09:00</0>"
   1881 "^(([0]?[1-9]|1[0-2])(:)([0-5][0-9]))$"   G "<0>9:00</0>"
   1882 "^(([0]?[1-9]|1[0-2])(:)([0-5][0-9]))$"   G "<0>11:35</0>"
   1883 "^(([0]?[1-9]|1[0-2])(:)([0-5][0-9]))$"     "13:00"
   1884 "^(([0]?[1-9]|1[0-2])(:)([0-5][0-9]))$"     "9.00"
   1885 "^(([0]?[1-9]|1[0-2])(:)([0-5][0-9]))$"     "6:60"
   1886 "^([1-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$"   G "<0>1</0>"
   1887 "^([1-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$"   G "<0>108</0>"
   1888 "^([1-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$"   G "<0>255</0>"
   1889 "^([1-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$"     "01"
   1890 "^([1-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$"     "256"
   1891 "^((((0[13578])|([13578])|(1[02]))[\/](([1-9])|([0-2][0-9])|(3[01])))|(((0[469])|([469])|(11))[\/](([1-9])|([0-2][0-9])|(30)))|((2|02)[\/](([1-9])|([0-2][0-9]))))[\/]\d{4}$|^\d{4}$"   G "<0>01/01/2001</0>"
   1892 "^((((0[13578])|([13578])|(1[02]))[\/](([1-9])|([0-2][0-9])|(3[01])))|(((0[469])|([469])|(11))[\/](([1-9])|([0-2][0-9])|(30)))|((2|02)[\/](([1-9])|([0-2][0-9]))))[\/]\d{4}$|^\d{4}$"   G "<0>1/01/2001</0>"
   1893 "^((((0[13578])|([13578])|(1[02]))[\/](([1-9])|([0-2][0-9])|(3[01])))|(((0[469])|([469])|(11))[\/](([1-9])|([0-2][0-9])|(30)))|((2|02)[\/](([1-9])|([0-2][0-9]))))[\/]\d{4}$|^\d{4}$"   G "<0>2002</0>"
   1894 "^((((0[13578])|([13578])|(1[02]))[\/](([1-9])|([0-2][0-9])|(3[01])))|(((0[469])|([469])|(11))[\/](([1-9])|([0-2][0-9])|(30)))|((2|02)[\/](([1-9])|([0-2][0-9]))))[\/]\d{4}$|^\d{4}$"     "2/30/2002"
   1895 "^((((0[13578])|([13578])|(1[02]))[\/](([1-9])|([0-2][0-9])|(3[01])))|(((0[469])|([469])|(11))[\/](([1-9])|([0-2][0-9])|(30)))|((2|02)[\/](([1-9])|([0-2][0-9]))))[\/]\d{4}$|^\d{4}$"     "13/23/2002"
   1896 "^((((0[13578])|([13578])|(1[02]))[\/](([1-9])|([0-2][0-9])|(3[01])))|(((0[469])|([469])|(11))[\/](([1-9])|([0-2][0-9])|(30)))|((2|02)[\/](([1-9])|([0-2][0-9]))))[\/]\d{4}$|^\d{4}$"     "12345"
   1897 "^[A-Za-z]{2}[0-9]{6}[A-Za-z]{1}$"   G "<0>SP939393H</0>"
   1898 "^[A-Za-z]{2}[0-9]{6}[A-Za-z]{1}$"   G "<0>PX123456D</0>"
   1899 "^[A-Za-z]{2}[0-9]{6}[A-Za-z]{1}$"   G "<0>SW355667G</0>"
   1900 "^[A-Za-z]{2}[0-9]{6}[A-Za-z]{1}$"     "12SP9393H"
   1901 "^[A-Za-z]{2}[0-9]{6}[A-Za-z]{1}$"     "S3P93930D"
   1902 "^[A-Za-z]{2}[0-9]{6}[A-Za-z]{1}$"     "11223344SP00ddSS"
   1903 "(^0[78][2347][0-9]{7})"   G "<0>0834128458</0>"
   1904 "(^0[78][2347][0-9]{7})"   G "<0>0749526308</0>"
   1905 "(^0[78][2347][0-9]{7})"     "0861212308"
   1906 "(^0[78][2347][0-9]{7})"     "0892549851"
   1907 "^([A-HJ-TP-Z]{1}\d{4}[A-Z]{3}|[a-z]{1}\d{4}[a-hj-tp-z]{3})$"   G "<0>C1406HHA</0>"
   1908 "^([A-HJ-TP-Z]{1}\d{4}[A-Z]{3}|[a-z]{1}\d{4}[a-hj-tp-z]{3})$"   G "<0>A4126AAB</0>"
   1909 "^([A-HJ-TP-Z]{1}\d{4}[A-Z]{3}|[a-z]{1}\d{4}[a-hj-tp-z]{3})$"   G "<0>c1406hha</0>"
   1910 "^([A-HJ-TP-Z]{1}\d{4}[A-Z]{3}|[a-z]{1}\d{4}[a-hj-tp-z]{3})$"     "c1406HHA"
   1911 "^([A-HJ-TP-Z]{1}\d{4}[A-Z]{3}|[a-z]{1}\d{4}[a-hj-tp-z]{3})$"     "4126"
   1912 "^([A-HJ-TP-Z]{1}\d{4}[A-Z]{3}|[a-z]{1}\d{4}[a-hj-tp-z]{3})$"     "C1406hha"
   1913 "^(((25[0-5]|2[0-4][0-9]|19[0-1]|19[3-9]|18[0-9]|17[0-1]|17[3-9]|1[0-6][0-9]|1[1-9]|[2-9][0-9]|[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9]))|(192\.(25[0-5]|2[0-4][0-9]|16[0-7]|169|1[0-5][0-9]|1[7-9][0-9]|[1-9][0-9]|[0-9]))|(172\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|1[0-5]|3[2-9]|[4-9][0-9]|[0-9])))\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$"   G "<0>66.129.71.120</0>"
   1914 "^(((25[0-5]|2[0-4][0-9]|19[0-1]|19[3-9]|18[0-9]|17[0-1]|17[3-9]|1[0-6][0-9]|1[1-9]|[2-9][0-9]|[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9]))|(192\.(25[0-5]|2[0-4][0-9]|16[0-7]|169|1[0-5][0-9]|1[7-9][0-9]|[1-9][0-9]|[0-9]))|(172\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|1[0-5]|3[2-9]|[4-9][0-9]|[0-9])))\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$"   G "<0>207.46.230.218</0>"
   1915 "^(((25[0-5]|2[0-4][0-9]|19[0-1]|19[3-9]|18[0-9]|17[0-1]|17[3-9]|1[0-6][0-9]|1[1-9]|[2-9][0-9]|[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9]))|(192\.(25[0-5]|2[0-4][0-9]|16[0-7]|169|1[0-5][0-9]|1[7-9][0-9]|[1-9][0-9]|[0-9]))|(172\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|1[0-5]|3[2-9]|[4-9][0-9]|[0-9])))\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$"   G "<0>64.58.76.225</0>"
   1916 "^(((25[0-5]|2[0-4][0-9]|19[0-1]|19[3-9]|18[0-9]|17[0-1]|17[3-9]|1[0-6][0-9]|1[1-9]|[2-9][0-9]|[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9]))|(192\.(25[0-5]|2[0-4][0-9]|16[0-7]|169|1[0-5][0-9]|1[7-9][0-9]|[1-9][0-9]|[0-9]))|(172\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|1[0-5]|3[2-9]|[4-9][0-9]|[0-9])))\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$"     "10.0.5.4"
   1917 "^(((25[0-5]|2[0-4][0-9]|19[0-1]|19[3-9]|18[0-9]|17[0-1]|17[3-9]|1[0-6][0-9]|1[1-9]|[2-9][0-9]|[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9]))|(192\.(25[0-5]|2[0-4][0-9]|16[0-7]|169|1[0-5][0-9]|1[7-9][0-9]|[1-9][0-9]|[0-9]))|(172\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|1[0-5]|3[2-9]|[4-9][0-9]|[0-9])))\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$"     "192.168.0.1"
   1918 "^(((25[0-5]|2[0-4][0-9]|19[0-1]|19[3-9]|18[0-9]|17[0-1]|17[3-9]|1[0-6][0-9]|1[1-9]|[2-9][0-9]|[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9]))|(192\.(25[0-5]|2[0-4][0-9]|16[0-7]|169|1[0-5][0-9]|1[7-9][0-9]|[1-9][0-9]|[0-9]))|(172\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|1[0-5]|3[2-9]|[4-9][0-9]|[0-9])))\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$"     "my ip address"
   1919 "^([\w\d\-\.]+)@{1}(([\w\d\-]{1,67})|([\w\d\-]+\.[\w\d\-]{1,67}))\.(([a-zA-Z\d]{2,4})(\.[a-zA-Z\d]{2})?)$"   G "<0>foo@foo.com</0>"
   1920 "^([\w\d\-\.]+)@{1}(([\w\d\-]{1,67})|([\w\d\-]+\.[\w\d\-]{1,67}))\.(([a-zA-Z\d]{2,4})(\.[a-zA-Z\d]{2})?)$"   G "<0>foo@foo-foo.com.au</0>"
   1921 "^([\w\d\-\.]+)@{1}(([\w\d\-]{1,67})|([\w\d\-]+\.[\w\d\-]{1,67}))\.(([a-zA-Z\d]{2,4})(\.[a-zA-Z\d]{2})?)$"   G "<0>foo@foo.foo.info</0>"
   1922 "^([\w\d\-\.]+)@{1}(([\w\d\-]{1,67})|([\w\d\-]+\.[\w\d\-]{1,67}))\.(([a-zA-Z\d]{2,4})(\.[a-zA-Z\d]{2})?)$"     "foo@.com"
   1923 "^([\w\d\-\.]+)@{1}(([\w\d\-]{1,67})|([\w\d\-]+\.[\w\d\-]{1,67}))\.(([a-zA-Z\d]{2,4})(\.[a-zA-Z\d]{2})?)$"     "foo@foo..com"
   1924 "^([\w\d\-\.]+)@{1}(([\w\d\-]{1,67})|([\w\d\-]+\.[\w\d\-]{1,67}))\.(([a-zA-Z\d]{2,4})(\.[a-zA-Z\d]{2})?)$"     "foo@me@.com"
   1925 "/\*[\d\D]*?\*/"   G "<0>/* my comment */</0>"
   1926 "/\*[\d\D]*?\*/"   G "<0>/* my multiline comment */</0>"
   1927 "/\*[\d\D]*?\*/"   G "<0>/* my nested comment */</0>"
   1928 "/\*[\d\D]*?\*/"     "*/ anything here /*"
   1929 "/\*[\d\D]*?\*/"     "anything between 2 separate comments"
   1930 "/\*[\d\D]*?\*/"     "\* *\"
   1931 "/\*[\p{N}\P{N}]*?\*/"   G "<0>/* my comment */</0>"
   1932 "/\*[\p{N}\P{N}]*?\*/"   G "<0>/* my multiline comment */</0>"
   1933 "/\*[\p{N}\P{N}]*?\*/"   G "<0>/* my nested comment */</0>"
   1934 "/\*[\p{N}\P{N}]*?\*/"     "*/ anything here /*"
   1935 "/\*[\p{N}\P{N}]*?\*/"     "anything between 2 separate comments"
   1936 "/\*[\p{N}\P{N}]*?\*/"     "\* *\"
   1937 "((0?[13578]|10|12)(-|\/)((0[0-9])|([12])([0-9]?)|(3[01]?))(-|\/)((\d{4})|(\d{2}))|(0?[2469]|11)(-|\/)((0[0-9])|([12])([0-9]?)|(3[0]?))(-|\/)((\d{4}|\d{2})))"   G "<0>1/31/2002</0>"
   1938 "((0?[13578]|10|12)(-|\/)((0[0-9])|([12])([0-9]?)|(3[01]?))(-|\/)((\d{4})|(\d{2}))|(0?[2469]|11)(-|\/)((0[0-9])|([12])([0-9]?)|(3[0]?))(-|\/)((\d{4}|\d{2})))"   G "<0>04-30-02</0>"
   1939 "((0?[13578]|10|12)(-|\/)((0[0-9])|([12])([0-9]?)|(3[01]?))(-|\/)((\d{4})|(\d{2}))|(0?[2469]|11)(-|\/)((0[0-9])|([12])([0-9]?)|(3[0]?))(-|\/)((\d{4}|\d{2})))"   G "<0>12-01/2002</0>"
   1940 "((0?[13578]|10|12)(-|\/)((0[0-9])|([12])([0-9]?)|(3[01]?))(-|\/)((\d{4})|(\d{2}))|(0?[2469]|11)(-|\/)((0[0-9])|([12])([0-9]?)|(3[0]?))(-|\/)((\d{4}|\d{2})))"     "2/31/2002"
   1941 "((0?[13578]|10|12)(-|\/)((0[0-9])|([12])([0-9]?)|(3[01]?))(-|\/)((\d{4})|(\d{2}))|(0?[2469]|11)(-|\/)((0[0-9])|([12])([0-9]?)|(3[0]?))(-|\/)((\d{4}|\d{2})))"     "13/0/02"
   1942 "((0?[13578]|10|12)(-|\/)((0[0-9])|([12])([0-9]?)|(3[01]?))(-|\/)((\d{4})|(\d{2}))|(0?[2469]|11)(-|\/)((0[0-9])|([12])([0-9]?)|(3[0]?))(-|\/)((\d{4}|\d{2})))"     "Jan 1, 2001"
   1943 '^(([^<>;()\[\]\\.,;:@"]+(\.[^<>()\[\]\\.,;:@"]+)*)|(".+"))@((([a-z]([-a-z0-9]*[a-z0-9])?)|(#[0-9]+)|(\[((([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\.){3}(([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\]))\.)*(([a-z]([-a-z0-9]*[a-z0-9])?)|(#[0-9]+)|(\[((([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\.){3}(([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\]))$'   G "<0>blah@[10.0.0.1]</0>"
   1944 '^(([^<>;()\[\]\\.,;:@"]+(\.[^<>()\[\]\\.,;:@"]+)*)|(".+"))@((([a-z]([-a-z0-9]*[a-z0-9])?)|(#[0-9]+)|(\[((([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\.){3}(([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\]))\.)*(([a-z]([-a-z0-9]*[a-z0-9])?)|(#[0-9]+)|(\[((([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\.){3}(([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\]))$'   G "<0>a@b.c</0>"
   1945 '^(([^<>;()\[\]\\.,;:@"]+(\.[^<>()\[\]\\.,;:@"]+)*)|(".+"))@((([a-z]([-a-z0-9]*[a-z0-9])?)|(#[0-9]+)|(\[((([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\.){3}(([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\]))\.)*(([a-z]([-a-z0-9]*[a-z0-9])?)|(#[0-9]+)|(\[((([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\.){3}(([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\]))$'     "non@match@."
   1946 "^\d{9}[\d|X]$"   G "<0>1234123412</0>"
   1947 "^\d{9}[\d|X]$"   G "<0>123412341X</0>"
   1948 "^\d{9}[\d|X]$"     "not an isbn"
   1949 "^\d{9}(\d|X)$"   G "<0>1234123412</0>"
   1950 "^\d{9}(\d|X)$"   G "<0>123412341X</0>"
   1951 "^\d{9}(\d|X)$"     "not an isbn"
   1952 "^(([1-9])|(0[1-9])|(1[0-2]))\/(([0-9])|([0-2][0-9])|(3[0-1]))\/(([0-9][0-9])|([1-2][0,9][0-9][0-9]))$"   G "<0>01/01/2001</0>"
   1953 "^(([1-9])|(0[1-9])|(1[0-2]))\/(([0-9])|([0-2][0-9])|(3[0-1]))\/(([0-9][0-9])|([1-2][0,9][0-9][0-9]))$"   G "<0>1/1/1999</0>"
   1954 "^(([1-9])|(0[1-9])|(1[0-2]))\/(([0-9])|([0-2][0-9])|(3[0-1]))\/(([0-9][0-9])|([1-2][0,9][0-9][0-9]))$"   G "<0>10/20/2080</0>"
   1955 "^(([1-9])|(0[1-9])|(1[0-2]))\/(([0-9])|([0-2][0-9])|(3[0-1]))\/(([0-9][0-9])|([1-2][0,9][0-9][0-9]))$"     "13/01/2001"
   1956 "^(([1-9])|(0[1-9])|(1[0-2]))\/(([0-9])|([0-2][0-9])|(3[0-1]))\/(([0-9][0-9])|([1-2][0,9][0-9][0-9]))$"     "1/1/1800"
   1957 "^(([1-9])|(0[1-9])|(1[0-2]))\/(([0-9])|([0-2][0-9])|(3[0-1]))\/(([0-9][0-9])|([1-2][0,9][0-9][0-9]))$"     "10/32/2080"
   1958 "^\d*\.?((25)|(50)|(5)|(75)|(0)|(00))?$"   G "<0>0.25</0>"
   1959 "^\d*\.?((25)|(50)|(5)|(75)|(0)|(00))?$"   G "<0>.75</0>"
   1960 "^\d*\.?((25)|(50)|(5)|(75)|(0)|(00))?$"   G "<0>123.50</0>"
   1961 "^\d*\.?((25)|(50)|(5)|(75)|(0)|(00))?$"     ".77"
   1962 "^\d*\.?((25)|(50)|(5)|(75)|(0)|(00))?$"     "1.435"
   1963 "^(s-|S-){0,1}[0-9]{3}\s?[0-9]{2}$"   G "<0>12345</0>"
   1964 "^(s-|S-){0,1}[0-9]{3}\s?[0-9]{2}$"   G "<0>932 68</0>"
   1965 "^(s-|S-){0,1}[0-9]{3}\s?[0-9]{2}$"   G "<0>S-621 46</0>"
   1966 "^(s-|S-){0,1}[0-9]{3}\s?[0-9]{2}$"     "5367"
   1967 "^(s-|S-){0,1}[0-9]{3}\s?[0-9]{2}$"     "425611"
   1968 "^(s-|S-){0,1}[0-9]{3}\s?[0-9]{2}$"     "31 545"
   1969 "^\d{5}(-\d{4})?$"   G "<0>48222</0>"
   1970 "^\d{5}(-\d{4})?$"   G "<0>48222-1746</0>"
   1971 "^\d{5}(-\d{4})?$"     "4632"
   1972 "^\d{5}(-\d{4})?$"     "Blake"
   1973 "^\d{5}(-\d{4})?$"     "37333-32"
   1974 '^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)[^\x00-\x1f\\?*:\";|/]+$'   G "<0>test.txt</0>"
   1975 '^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)[^\x00-\x1f\\?*:\";|/]+$'   G "<0>test.jpg.txt</0>"
   1976 '^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)[^\x00-\x1f\\?*:\";|/]+$'   G "<0>a&b c.bmp</0>"
   1977 '^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)[^\x00-\x1f\\?*:\";|/]+$'     "CON"
   1978 '^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)[^\x00-\x1f\\?*:\";|/]+$'     ".pdf"
   1979 '^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)[^\x00-\x1f\\?*:\";|/]+$'     "test:2.pdf"
   1980 "^(\d{1,3}'(\d{3}')*\d{3}(\.\d{1,3})?|\d{1,3}(\.\d{3})?)$"   G "<0>1'235.140</0>"
   1981 "^(\d{1,3}'(\d{3}')*\d{3}(\.\d{1,3})?|\d{1,3}(\.\d{3})?)$"   G "<0>1'222'333.120</0>"
   1982 "^(\d{1,3}'(\d{3}')*\d{3}(\.\d{1,3})?|\d{1,3}(\.\d{3})?)$"   G "<0>456</0>"
   1983 "^(\d{1,3}'(\d{3}')*\d{3}(\.\d{1,3})?|\d{1,3}(\.\d{3})?)$"     "1234.500"
   1984 "^(\d{1,3}'(\d{3}')*\d{3}(\.\d{1,3})?|\d{1,3}(\.\d{3})?)$"     "78'45.123"
   1985 "^(\d{1,3}'(\d{3}')*\d{3}(\.\d{1,3})?|\d{1,3}(\.\d{3})?)$"     "123,0012"
   1986 "^[a-zA-Z][0-9][a-zA-Z]\s?[0-9][a-zA-Z][0-9]$"   G "<0>T2p 3c7</0>"
   1987 "^[a-zA-Z][0-9][a-zA-Z]\s?[0-9][a-zA-Z][0-9]$"   G "<0>T3P3c7</0>"
   1988 "^[a-zA-Z][0-9][a-zA-Z]\s?[0-9][a-zA-Z][0-9]$"   G "<0>T2P 3C7</0>"
   1989 "^[a-zA-Z][0-9][a-zA-Z]\s?[0-9][a-zA-Z][0-9]$"     "123456"
   1990 "^[a-zA-Z][0-9][a-zA-Z]\s?[0-9][a-zA-Z][0-9]$"     "3C7T2P"
   1991 "^[a-zA-Z][0-9][a-zA-Z]\s?[0-9][a-zA-Z][0-9]$"     "11T21RWW"
   1992 "^\$[0-9]+(\.[0-9][0-9])?$"   G "<0>$1.50</0>"
   1993 "^\$[0-9]+(\.[0-9][0-9])?$"   G "<0>$49</0>"
   1994 "^\$[0-9]+(\.[0-9][0-9])?$"   G "<0>$0.50</0>"
   1995 "^\$[0-9]+(\.[0-9][0-9])?$"     "1.5"
   1996 "^\$[0-9]+(\.[0-9][0-9])?$"     "$1.333"
   1997 "^\$[0-9]+(\.[0-9][0-9])?$"     "this $5.12 fails"
   1998 "\b((25[0-5]|2[0-4]\d|[01]\d\d|\d?\d)\.){3}(25[0-5]|2[0-4]\d|[01]\d\d|\d?\d)\b"   G "<0>217.6.9.89</0>"
   1999 "\b((25[0-5]|2[0-4]\d|[01]\d\d|\d?\d)\.){3}(25[0-5]|2[0-4]\d|[01]\d\d|\d?\d)\b"   G "<0>0.0.0.0</0>"
   2000 "\b((25[0-5]|2[0-4]\d|[01]\d\d|\d?\d)\.){3}(25[0-5]|2[0-4]\d|[01]\d\d|\d?\d)\b"   G "<0>255.255.255.255</0>"
   2001 "\b((25[0-5]|2[0-4]\d|[01]\d\d|\d?\d)\.){3}(25[0-5]|2[0-4]\d|[01]\d\d|\d?\d)\b"     "256.0.0.0"
   2002 "\b((25[0-5]|2[0-4]\d|[01]\d\d|\d?\d)\.){3}(25[0-5]|2[0-4]\d|[01]\d\d|\d?\d)\b"     "0978.3.3.3"
   2003 "\b((25[0-5]|2[0-4]\d|[01]\d\d|\d?\d)\.){3}(25[0-5]|2[0-4]\d|[01]\d\d|\d?\d)\b"     "65.4t.54.3"
   2004 "((mailto\:|(news|(ht|f)tp(s?))\://){1}\S+)"   G "<0>http://www.aspemporium.com</0>"
   2005 "((mailto\:|(news|(ht|f)tp(s?))\://){1}\S+)"   G "<0>mailto:dominionx@hotmail.com</0>"
   2006 "((mailto\:|(news|(ht|f)tp(s?))\://){1}\S+)"   G "<0>ftp://ftp.test.com</0>"
   2007 "((mailto\:|(news|(ht|f)tp(s?))\://){1}\S+)"     "www.aspemporium.com"
   2008 "((mailto\:|(news|(ht|f)tp(s?))\://){1}\S+)"     "dominionx@hotmail.com"
   2009 "((mailto\:|(news|(ht|f)tp(s?))\://){1}\S+)"     "bloggs"
   2010 "\(([0-9]{2}|0{1}((x|[0-9]){2}[0-9]{2}))\)\s*[0-9]{3,4}[- ]*[0-9]{4}"   G "<0>(12) 123 1234</0>"
   2011 "\(([0-9]{2}|0{1}((x|[0-9]){2}[0-9]{2}))\)\s*[0-9]{3,4}[- ]*[0-9]{4}"   G "<0>(01512) 123 1234</0>"
   2012 "\(([0-9]{2}|0{1}((x|[0-9]){2}[0-9]{2}))\)\s*[0-9]{3,4}[- ]*[0-9]{4}"   G "<0>(0xx12) 1234 1234</0>"
   2013 "\(([0-9]{2}|0{1}((x|[0-9]){2}[0-9]{2}))\)\s*[0-9]{3,4}[- ]*[0-9]{4}"     "12 123 1234"
   2014 "\(([0-9]{2}|0{1}((x|[0-9]){2}[0-9]{2}))\)\s*[0-9]{3,4}[- ]*[0-9]{4}"     "(012) 123/1234"
   2015 "\(([0-9]{2}|0{1}((x|[0-9]){2}[0-9]{2}))\)\s*[0-9]{3,4}[- ]*[0-9]{4}"     "(012) 123 12345"
   2016 "^\w+[\w-\.]*\@\w+((-\w+)|(\w*))\.[a-z]{2,3}$"   G "<0>bob-smith@foo.com</0>"
   2017 "^\w+[\w-\.]*\@\w+((-\w+)|(\w*))\.[a-z]{2,3}$"   G "<0>bob.smith@foo.com</0>"
   2018 "^\w+[\w-\.]*\@\w+((-\w+)|(\w*))\.[a-z]{2,3}$"   G "<0>bob_smith@foo.com</0>"
   2019 "^\w+[\w-\.]*\@\w+((-\w+)|(\w*))\.[a-z]{2,3}$"     "-smith@foo.com"
   2020 "^\w+[\w-\.]*\@\w+((-\w+)|(\w*))\.[a-z]{2,3}$"     ".smith@foo.com"
   2021 "^\w+[\w-\.]*\@\w+((-\w+)|(\w*))\.[a-z]{2,3}$"     "smith@foo_com"
   2022 "^(?=.*\d).{4,8}$"   G "<0>1234</0>"
   2023 "^(?=.*\d).{4,8}$"   G "<0>asdf1234</0>"
   2024 "^(?=.*\d).{4,8}$"   G "<0>asp123</0>"
   2025 "^(?=.*\d).{4,8}$"     "asdf"
   2026 "^(?=.*\d).{4,8}$"     "asdf12345"
   2027 "^(?=.*\d).{4,8}$"     "password"
   2028 "[^A-Za-z0-9_@\.]|@{2,}|\.{5,}"   G "<0>user name</0>"
   2029 "[^A-Za-z0-9_@\.]|@{2,}|\.{5,}"   G "<0>user#name</0>"
   2030 "[^A-Za-z0-9_@\.]|@{2,}|\.{5,}"   G "<0>.....</0>"
   2031 "[^A-Za-z0-9_@\.]|@{2,}|\.{5,}"     "User_Name1"
   2032 "[^A-Za-z0-9_@\.]|@{2,}|\.{5,}"     "username@foo.com"
   2033 "[^A-Za-z0-9_@\.]|@{2,}|\.{5,}"     "user.name@mail.foo.com"
   2034 "^100$|^[0-9]{1,2}$|^[0-9]{1,2}\,[0-9]{1,3}$"   G "<0>12,654</0>"
   2035 "^100$|^[0-9]{1,2}$|^[0-9]{1,2}\,[0-9]{1,3}$"   G "<0>1,987</0>"
   2036 "^100$|^[0-9]{1,2}$|^[0-9]{1,2}\,[0-9]{1,3}$"     "128,2"
   2037 "^100$|^[0-9]{1,2}$|^[0-9]{1,2}\,[0-9]{1,3}$"     "12,"
   2038 "^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+\&%\$#\=~])*[^\.\,\)\(\s]$"   G "<0>https://www.restrictd.com/~myhome/</0>"
   2039 "^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+\&%\$#\=~])*[^\.\,\)\(\s]$"     "http://www.krumedia.com."
   2040 "^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+\&%\$#\=~])*[^\.\,\)\(\s]$"     "(http://www.krumedia.com)"
   2041 "^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+\&%\$#\=~])*[^\.\,\)\(\s]$"     "http://www.krumedia.com,"
   2042 "(\d{1,3},(\d{3},)*\d{3}(\.\d{1,3})?|\d{1,3}(\.\d{3})?)$"   G "<0>2&651.50</0>"
   2043 "(\d{1,3},(\d{3},)*\d{3}(\.\d{1,3})?|\d{1,3}(\.\d{3})?)$"   G "<0>987.895</0>"
   2044 "(\d{1,3},(\d{3},)*\d{3}(\.\d{1,3})?|\d{1,3}(\.\d{3})?)$"     "25$%787*"
   2045 "\$[0-9]?[0-9]?[0-9]?((\,[0-9][0-9][0-9])*)?(\.[0-9][0-9]?)?$"   G "<0>$1,456,983.00</0>"
   2046 "\$[0-9]?[0-9]?[0-9]?((\,[0-9][0-9][0-9])*)?(\.[0-9][0-9]?)?$"   G "<0>$1,700.07</0>"
   2047 "\$[0-9]?[0-9]?[0-9]?((\,[0-9][0-9][0-9])*)?(\.[0-9][0-9]?)?$"   G "<0>$68,944.23</0>"
   2048 "\$[0-9]?[0-9]?[0-9]?((\,[0-9][0-9][0-9])*)?(\.[0-9][0-9]?)?$"     "$20,86.93"
   2049 "\$[0-9]?[0-9]?[0-9]?((\,[0-9][0-9][0-9])*)?(\.[0-9][0-9]?)?$"     "$1098.84"
   2050 "\$[0-9]?[0-9]?[0-9]?((\,[0-9][0-9][0-9])*)?(\.[0-9][0-9]?)?$"     "$150."
   2051 "\$[0-9]?[0-9]?[0-9]?((\,[0-9][0-9][0-9])*)?(\.[0-9][0-9])?$"   G "<0>$28,009,987.88</0>"
   2052 "\$[0-9]?[0-9]?[0-9]?((\,[0-9][0-9][0-9])*)?(\.[0-9][0-9])?$"   G "<0>$23,099.05</0>"
   2053 "\$[0-9]?[0-9]?[0-9]?((\,[0-9][0-9][0-9])*)?(\.[0-9][0-9])?$"   G "<0>$.88</0>"
   2054 "\$[0-9]?[0-9]?[0-9]?((\,[0-9][0-9][0-9])*)?(\.[0-9][0-9])?$"     "$234,5.99"
   2055 "^((((31\/(0?[13578]|1[02]))|((29|30)\/(0?[1,3-9]|1[0-2])))\/(1[6-9]|[2-9]\d)?\d{2})|(29\/0?2\/(((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))|(0?[1-9]|1\d|2[0-8])\/((0?[1-9])|(1[0-2]))\/((1[6-9]|[2-9]\d)?\d{2})) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$"   G "<0>29/02/2004 20:15:27</0>"
   2056 "^((((31\/(0?[13578]|1[02]))|((29|30)\/(0?[1,3-9]|1[0-2])))\/(1[6-9]|[2-9]\d)?\d{2})|(29\/0?2\/(((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))|(0?[1-9]|1\d|2[0-8])\/((0?[1-9])|(1[0-2]))\/((1[6-9]|[2-9]\d)?\d{2})) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$"   G "<0>29/2/04 8:9:5</0>"
   2057 "^((((31\/(0?[13578]|1[02]))|((29|30)\/(0?[1,3-9]|1[0-2])))\/(1[6-9]|[2-9]\d)?\d{2})|(29\/0?2\/(((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))|(0?[1-9]|1\d|2[0-8])\/((0?[1-9])|(1[0-2]))\/((1[6-9]|[2-9]\d)?\d{2})) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$"   G "<0>31/3/2004 9:20:17</0>"
   2058 "^((((31\/(0?[13578]|1[02]))|((29|30)\/(0?[1,3-9]|1[0-2])))\/(1[6-9]|[2-9]\d)?\d{2})|(29\/0?2\/(((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))|(0?[1-9]|1\d|2[0-8])\/((0?[1-9])|(1[0-2]))\/((1[6-9]|[2-9]\d)?\d{2})) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$"     "29/02/2003 20:15:15"
   2059 "^((((31\/(0?[13578]|1[02]))|((29|30)\/(0?[1,3-9]|1[0-2])))\/(1[6-9]|[2-9]\d)?\d{2})|(29\/0?2\/(((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))|(0?[1-9]|1\d|2[0-8])\/((0?[1-9])|(1[0-2]))\/((1[6-9]|[2-9]\d)?\d{2})) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$"     "2/29/04 20:15:15"
   2060 "^((((31\/(0?[13578]|1[02]))|((29|30)\/(0?[1,3-9]|1[0-2])))\/(1[6-9]|[2-9]\d)?\d{2})|(29\/0?2\/(((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))|(0?[1-9]|1\d|2[0-8])\/((0?[1-9])|(1[0-2]))\/((1[6-9]|[2-9]\d)?\d{2})) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$"     "31/3/4 9:20:17"
   2061 "^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$"   G "<0>something@someserver.com</0>"
   2062 "^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$"   G "<0>firstname.lastname@mailserver.domain.com</0>"
   2063 "^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$"   G "<0>username-something@some-server.nl</0>"
   2064 "^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$"     "username@someserver.domain.c"
   2065 "^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$"     "somename@server.domain-com"
   2066 "^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$"     "someone@something.se_eo"
   2067 "(^([0-9]|[0-1][0-9]|[2][0-3]):([0-5][0-9])(\s{0,1})(AM|PM|am|pm|aM|Am|pM|Pm{2,2})$)|(^([0-9]|[1][0-9]|[2][0-3])(\s{0,1})(AM|PM|am|pm|aM|Am|pM|Pm{2,2})$)"   G "<0>8am</0>"
   2068 "(^([0-9]|[0-1][0-9]|[2][0-3]):([0-5][0-9])(\s{0,1})(AM|PM|am|pm|aM|Am|pM|Pm{2,2})$)|(^([0-9]|[1][0-9]|[2][0-3])(\s{0,1})(AM|PM|am|pm|aM|Am|pM|Pm{2,2})$)"   G "<0>8 am</0>"
   2069 "(^([0-9]|[0-1][0-9]|[2][0-3]):([0-5][0-9])(\s{0,1})(AM|PM|am|pm|aM|Am|pM|Pm{2,2})$)|(^([0-9]|[1][0-9]|[2][0-3])(\s{0,1})(AM|PM|am|pm|aM|Am|pM|Pm{2,2})$)"   G "<0>8:00 am</0>"
   2070 "(^([0-9]|[0-1][0-9]|[2][0-3]):([0-5][0-9])(\s{0,1})(AM|PM|am|pm|aM|Am|pM|Pm{2,2})$)|(^([0-9]|[1][0-9]|[2][0-3])(\s{0,1})(AM|PM|am|pm|aM|Am|pM|Pm{2,2})$)"     "8a"
   2071 "(^([0-9]|[0-1][0-9]|[2][0-3]):([0-5][0-9])(\s{0,1})(AM|PM|am|pm|aM|Am|pM|Pm{2,2})$)|(^([0-9]|[1][0-9]|[2][0-3])(\s{0,1})(AM|PM|am|pm|aM|Am|pM|Pm{2,2})$)"     "8 a"
   2072 "(^([0-9]|[0-1][0-9]|[2][0-3]):([0-5][0-9])(\s{0,1})(AM|PM|am|pm|aM|Am|pM|Pm{2,2})$)|(^([0-9]|[1][0-9]|[2][0-3])(\s{0,1})(AM|PM|am|pm|aM|Am|pM|Pm{2,2})$)"     "8:00 a"
   2073 "^([0-9]{2})?(\([0-9]{2})\)([0-9]{3}|[0-9]{4})-[0-9]{4}$"   G "<0>55(21)123-4567</0>"
   2074 "^([0-9]{2})?(\([0-9]{2})\)([0-9]{3}|[0-9]{4})-[0-9]{4}$"   G "<0>(11)1234-5678</0>"
   2075 "^([0-9]{2})?(\([0-9]{2})\)([0-9]{3}|[0-9]{4})-[0-9]{4}$"   G "<0>55(71)4562-2234</0>"
   2076 "^([0-9]{2})?(\([0-9]{2})\)([0-9]{3}|[0-9]{4})-[0-9]{4}$"     "3434-3432"
   2077 "^([0-9]{2})?(\([0-9]{2})\)([0-9]{3}|[0-9]{4})-[0-9]{4}$"     "4(23)232-3232"
   2078 "^([0-9]{2})?(\([0-9]{2})\)([0-9]{3}|[0-9]{4})-[0-9]{4}$"     "55(2)232-232"
   2079 "^((([0]?[1-9]|1[0-2])(:|\.)[0-5][0-9]((:|\.)[0-5][0-9])?( )?(AM|am|aM|Am|PM|pm|pM|Pm))|(([0]?[0-9]|1[0-9]|2[0-3])(:|\.)[0-5][0-9]((:|\.)[0-5][0-9])?))$"   G "<0>1:01 AM</0>"
   2080 "^((([0]?[1-9]|1[0-2])(:|\.)[0-5][0-9]((:|\.)[0-5][0-9])?( )?(AM|am|aM|Am|PM|pm|pM|Pm))|(([0]?[0-9]|1[0-9]|2[0-3])(:|\.)[0-5][0-9]((:|\.)[0-5][0-9])?))$"   G "<0>23:52:01</0>"
   2081 "^((([0]?[1-9]|1[0-2])(:|\.)[0-5][0-9]((:|\.)[0-5][0-9])?( )?(AM|am|aM|Am|PM|pm|pM|Pm))|(([0]?[0-9]|1[0-9]|2[0-3])(:|\.)[0-5][0-9]((:|\.)[0-5][0-9])?))$"   G "<0>03.24.36 AM</0>"
   2082 "^((([0]?[1-9]|1[0-2])(:|\.)[0-5][0-9]((:|\.)[0-5][0-9])?( )?(AM|am|aM|Am|PM|pm|pM|Pm))|(([0]?[0-9]|1[0-9]|2[0-3])(:|\.)[0-5][0-9]((:|\.)[0-5][0-9])?))$"     "19:31 AM"
   2083 "^((([0]?[1-9]|1[0-2])(:|\.)[0-5][0-9]((:|\.)[0-5][0-9])?( )?(AM|am|aM|Am|PM|pm|pM|Pm))|(([0]?[0-9]|1[0-9]|2[0-3])(:|\.)[0-5][0-9]((:|\.)[0-5][0-9])?))$"     "9:9 PM"
   2084 "^((([0]?[1-9]|1[0-2])(:|\.)[0-5][0-9]((:|\.)[0-5][0-9])?( )?(AM|am|aM|Am|PM|pm|pM|Pm))|(([0]?[0-9]|1[0-9]|2[0-3])(:|\.)[0-5][0-9]((:|\.)[0-5][0-9])?))$"     "25:60:61"
   2085 "^\d{0,2}(\.\d{1,2})?$"   G "<0>99.99</0>"
   2086 "^\d{0,2}(\.\d{1,2})?$"   G "<0>99</0>"
   2087 "^\d{0,2}(\.\d{1,2})?$"   G "<0>.99</0>"
   2088 "^\d{0,2}(\.\d{1,2})?$"     "999.999"
   2089 "^\d{0,2}(\.\d{1,2})?$"     "999"
   2090 "^\d{0,2}(\.\d{1,2})?$"     ".999"
   2091 "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{4,8}$"   G "<0>1agdA*$#</0>"
   2092 "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{4,8}$"   G "<0>1agdA*$#</0>"
   2093 "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{4,8}$"   G "<0>1agdA*$#</0>"
   2094 "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{4,8}$"     "wyrn%@*&$# f"
   2095 "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{4,8}$"     "mbndkfh782"
   2096 "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{4,8}$"     "BNfhjdhfjd&*)%#$)"
   2097 "^([a-zA-Z0-9][-a-zA-Z0-9]*[a-zA-Z0-9]\.)+([a-zA-Z0-9]{3,5})$"   G "<0>freshmeat.net</0>"
   2098 "^([a-zA-Z0-9][-a-zA-Z0-9]*[a-zA-Z0-9]\.)+([a-zA-Z0-9]{3,5})$"   G "<0>123.com</0>"
   2099 "^([a-zA-Z0-9][-a-zA-Z0-9]*[a-zA-Z0-9]\.)+([a-zA-Z0-9]{3,5})$"   G "<0>TempLate-toolkKt.orG</0>"
   2100 "^([a-zA-Z0-9][-a-zA-Z0-9]*[a-zA-Z0-9]\.)+([a-zA-Z0-9]{3,5})$"     "-dog.com"
   2101 "^([a-zA-Z0-9][-a-zA-Z0-9]*[a-zA-Z0-9]\.)+([a-zA-Z0-9]{3,5})$"     "?boy.net"
   2102 "^([a-zA-Z0-9][-a-zA-Z0-9]*[a-zA-Z0-9]\.)+([a-zA-Z0-9]{3,5})$"     "this.domain"
   2103 "^[^']*$"   G "<0>asljas</0>"
   2104 "^[^']*$"   G "<0>%/&89uhuhadjkh</0>"
   2105 "^[^']*$"   G '<0>"hi there!"</0>'
   2106 "^[^']*$"     "'hi there!'"
   2107 "^[^']*$"     "It's 9 o'clock"
   2108 "^[^']*$"     "'''''"
   2109 "(^\(\)$|^\(((\([0-9]+,(\((\([0-9]+,[0-9]+,[0-9]+\),)*(\([0-9]+,[0-9]+,[0-9]+\)){1}\))+\),)*(\([0-9]+,(\((\([0-9]+,[0-9]+,[0-9]+\),)*(\([0-9]+,[0-9]+,[0-9]+\)){1}\))+\)){1}\)))$"   G "<0>((24,((1,2,3),(3,4,5))))</0>"
   2110 "(^\(\)$|^\(((\([0-9]+,(\((\([0-9]+,[0-9]+,[0-9]+\),)*(\([0-9]+,[0-9]+,[0-9]+\)){1}\))+\),)*(\([0-9]+,(\((\([0-9]+,[0-9]+,[0-9]+\),)*(\([0-9]+,[0-9]+,[0-9]+\)){1}\))+\)){1}\)))$"   G "<0>((1,((2,3,4),(4,5,6),(96,34,26))),(12,((1,3,4),(4,5,6),(7,8,9))))</0>"
   2111 "(^\(\)$|^\(((\([0-9]+,(\((\([0-9]+,[0-9]+,[0-9]+\),)*(\([0-9]+,[0-9]+,[0-9]+\)){1}\))+\),)*(\([0-9]+,(\((\([0-9]+,[0-9]+,[0-9]+\),)*(\([0-9]+,[0-9]+,[0-9]+\)){1}\))+\)){1}\)))$"   G "<0>()</0>"
   2112 "(^\(\)$|^\(((\([0-9]+,(\((\([0-9]+,[0-9]+,[0-9]+\),)*(\([0-9]+,[0-9]+,[0-9]+\)){1}\))+\),)*(\([0-9]+,(\((\([0-9]+,[0-9]+,[0-9]+\),)*(\([0-9]+,[0-9]+,[0-9]+\)){1}\))+\)){1}\)))$"     "(24,((1,2,3),(3,4,5)))"
   2113 "(^\(\)$|^\(((\([0-9]+,(\((\([0-9]+,[0-9]+,[0-9]+\),)*(\([0-9]+,[0-9]+,[0-9]+\)){1}\))+\),)*(\([0-9]+,(\((\([0-9]+,[0-9]+,[0-9]+\),)*(\([0-9]+,[0-9]+,[0-9]+\)){1}\))+\)){1}\)))$"     "(  )"
   2114 "(^\(\)$|^\(((\([0-9]+,(\((\([0-9]+,[0-9]+,[0-9]+\),)*(\([0-9]+,[0-9]+,[0-9]+\)){1}\))+\),)*(\([0-9]+,(\((\([0-9]+,[0-9]+,[0-9]+\),)*(\([0-9]+,[0-9]+,[0-9]+\)){1}\))+\)){1}\)))$"     "((23,(12,3,4),(4,5,6)))"
   2115 "^[a-zA-Z0-9\s .\-_']+$"   G "<0>dony d'gsa</0>"
   2116 "^[a-zA-Z0-9\s .\-_']+$"     "^[a-zA-Z0-9\s.\-_']+$"
   2117 "^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$"   G "<0>example@example.com</0>"
   2118 "^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$"   G "<0>foo@bar.info</0>"
   2119 "^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$"   G "<0>blah@127.0.0.1</0>"
   2120 "^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$"     "broken@@example.com"
   2121 "^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$"     "foo@bar.infp"
   2122 "^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$"     "blah@.nospam.biz"
   2123 "^\d{5}(-\d{3})?$"   G "<0>13165-000</0>"
   2124 "^\d{5}(-\d{3})?$"   G "<0>38175-000</0>"
   2125 "^\d{5}(-\d{3})?$"   G "<0>81470-276</0>"
   2126 "^\d{5}(-\d{3})?$"     "13165-00"
   2127 "^\d{5}(-\d{3})?$"     "38175-abc"
   2128 "^\d{5}(-\d{3})?$"     "81470-2763"
   2129 "^\$(\d{1,3}(\,\d{3})*|(\d+))(\.\d{2})?$"   G "<0>$0.84</0>"
   2130 "^\$(\d{1,3}(\,\d{3})*|(\d+))(\.\d{2})?$"   G "<0>$123458</0>"
   2131 "^\$(\d{1,3}(\,\d{3})*|(\d+))(\.\d{2})?$"   G "<0>$1,234,567.89</0>"
   2132 "^\$(\d{1,3}(\,\d{3})*|(\d+))(\.\d{2})?$"     "$12,3456.01"
   2133 "^\$(\d{1,3}(\,\d{3})*|(\d+))(\.\d{2})?$"     "12345"
   2134 "^\$(\d{1,3}(\,\d{3})*|(\d+))(\.\d{2})?$"     "$1.234"
   2135 "([A-Z]:\\[^/:\*\?<>\|]+\.\w{2,6})|(\\{2}[^/:\*\?<>\|]+\.\w{2,6})"   G "<0>C:\\temp\\this allows spaces\\web.config</0>"
   2136 "([A-Z]:\\[^/:\*\?<>\|]+\.\w{2,6})|(\\{2}[^/:\*\?<>\|]+\.\w{2,6})"   G "<0>\\\\Andromeda\\share\\file name.123</0>"
   2137 "([A-Z]:\\[^/:\*\?<>\|]+\.\w{2,6})|(\\{2}[^/:\*\?<>\|]+\.\w{2,6})"     "tz:\temp\ fi*le?na:m<e>.doc"
   2138 "([A-Z]:\\[^/:\*\?<>\|]+\.\w{2,6})|(\\{2}[^/:\*\?<>\|]+\.\w{2,6})"     "\\Andromeda\share\filename.a"
   2139 "(^([0-9]|[0-1][0-9]|[2][0-3]):([0-5][0-9])$)|(^([0-9]|[1][0-9]|[2][0-3])$)"   G "<0>10:35</0>"
   2140 "(^([0-9]|[0-1][0-9]|[2][0-3]):([0-5][0-9])$)|(^([0-9]|[1][0-9]|[2][0-3])$)"   G "<0>9:20</0>"
   2141 "(^([0-9]|[0-1][0-9]|[2][0-3]):([0-5][0-9])$)|(^([0-9]|[1][0-9]|[2][0-3])$)"   G "<0>23</0>"
   2142 "(^([0-9]|[0-1][0-9]|[2][0-3]):([0-5][0-9])$)|(^([0-9]|[1][0-9]|[2][0-3])$)"     "24:00"
   2143 "(^([0-9]|[0-1][0-9]|[2][0-3]):([0-5][0-9])$)|(^([0-9]|[1][0-9]|[2][0-3])$)"     "20 PM"
   2144 "(^([0-9]|[0-1][0-9]|[2][0-3]):([0-5][0-9])$)|(^([0-9]|[1][0-9]|[2][0-3])$)"     "20:15 PM"
   2145 "^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(\.[0-9][0-9])?$"   G "<0>$3,023,123.34</0>"
   2146 "^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(\.[0-9][0-9])?$"   G "<0>9,876,453</0>"
   2147 "^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(\.[0-9][0-9])?$"   G "<0>123456.78</0>"
   2148 "^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(\.[0-9][0-9])?$"     "4,33,234.34"
   2149 "^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(\.[0-9][0-9])?$"     "$1.234"
   2150 "^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(\.[0-9][0-9])?$"     "abc"
   2151 "^\$?\d+(\.(\d{2}))?$"   G "<0>$2.43</0>"
   2152 "^\$?\d+(\.(\d{2}))?$"   G "<0>2.02</0>"
   2153 "^\$?\d+(\.(\d{2}))?$"   G "<0>$2112</0>"
   2154 "^\$?\d+(\.(\d{2}))?$"     "2.1"
   2155 "^\$?\d+(\.(\d{2}))?$"     "$.14"
   2156 "^\$?\d+(\.(\d{2}))?$"     "$2,222.12"
   2157 /("[^"]*")|('[^\r]*)(\r\n)?/   G '<0>"my string"</0>'
   2158 /("[^"]*")|('[^\r]*)(\r\n)?/   G '<0>"a string with \u0027 in it"</0>'
   2159 /("[^"]*")|('[^\r]*)(\r\n)?/   G "<0>' comment</0>"
   2160 /("[^"]*")|('[^\r]*)(\r\n)?/     /asd "/
   2161 "^[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}$"   G "<0>BFDB4D31-3E35-4DAB-AFCA-5E6E5C8F61EA</0>"
   2162 "^[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}$"   G "<0>BFDB4d31-3e35-4dab-afca-5e6e5c8f61ea</0>"
   2163 "^[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}$"     "qqqBFDB4D31-3E35-4DAB-AFCA-5E6E5C8F61EA"
   2164 "^[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}$"     "BFDB4D31-3E-4DAB-AFCA-5E6E5C8F61EA"
   2165 "^[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}$"     "BFDB4D31-3E35-4DAB-AF"
   2166 "^\d{2}(\x2e)(\d{3})(-\d{3})?$"   G "<0>12.345-678</0>"
   2167 "^\d{2}(\x2e)(\d{3})(-\d{3})?$"   G "<0>23.345-123</0>"
   2168 "^\d{2}(\x2e)(\d{3})(-\d{3})?$"   G "<0>99.999</0>"
   2169 "^\d{2}(\x2e)(\d{3})(-\d{3})?$"     "41222-222"
   2170 "^\d{2}(\x2e)(\d{3})(-\d{3})?$"     "3.444-233"
   2171 "^\d{2}(\x2e)(\d{3})(-\d{3})?$"     "43.324444"
   2172 "^\d{2}(\u002e)(\d{3})(-\d{3})?$"   G "<0>12.345-678</0>"
   2173 "^\d{2}(\u002e)(\d{3})(-\d{3})?$"   G "<0>23.345-123</0>"
   2174 "^\d{2}(\u002e)(\d{3})(-\d{3})?$"   G "<0>99.999</0>"
   2175 "^\d{2}(\u002e)(\d{3})(-\d{3})?$"     "41222-222"
   2176 "^\d{2}(\u002e)(\d{3})(-\d{3})?$"     "3.444-233"
   2177 "^\d{2}(\u002e)(\d{3})(-\d{3})?$"     "43.324444"
   2178 #"^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w ]*))+\.(txt|TXT)$"   G "<0>c:\file.txt</0>"   # TODO:  debug
   2179 #"^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w ]*))+\.(txt|TXT)$"   G "<0>c:\folder\sub folder\file.txt</0>"   # TODO:  debug
   2180 #"^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w ]*))+\.(txt|TXT)$"   G "<0>\\network\folder\file.txt</0>"    # TODO:  debug
   2181 "^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w ]*))+\.(txt|TXT)$"     "C:"
   2182 "^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w ]*))+\.(txt|TXT)$"     "C:\file.xls"
   2183 "^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w ]*))+\.(txt|TXT)$"     "folder.txt"
   2184 "^[a-zA-Z0-9]+([a-zA-Z0-9\-\.]+)?\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$"   G "<0>my.domain.com</0>"
   2185 "^[a-zA-Z0-9]+([a-zA-Z0-9\-\.]+)?\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$"   G "<0>regexlib.com</0>"
   2186 "^[a-zA-Z0-9]+([a-zA-Z0-9\-\.]+)?\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$"   G "<0>big-reg.com</0>"
   2187 "^[a-zA-Z0-9]+([a-zA-Z0-9\-\.]+)?\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$"     ".mydomain.com"
   2188 "^[a-zA-Z0-9]+([a-zA-Z0-9\-\.]+)?\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$"     "regexlib.comm"
   2189 "^[a-zA-Z0-9]+([a-zA-Z0-9\-\.]+)?\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$"     "-bigreg.com"
   2190 "^\d{4}[\-\/\s]?((((0[13578])|(1[02]))[\-\/\s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\-\/\s]?(([0-2][0-9])|(30)))|(02[\-\/\s]?[0-2][0-9]))$"   G "<0>0001-12-31</0>"
   2191 "^\d{4}[\-\/\s ]?((((0[13578])|(1[02]))[\-\/\s ]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\-\/\s ]?(([0-2][0-9])|(30)))|(02[\-\/\s ]?[0-2][0-9]))$"   G "<0>9999 09 30</0>"
   2192 "^\d{4}[\-\/\s]?((((0[13578])|(1[02]))[\-\/\s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\-\/\s]?(([0-2][0-9])|(30)))|(02[\-\/\s]?[0-2][0-9]))$"   G "<0>2002/03/03</0>"
   2193 "^\d{4}[\-\/\s]?((((0[13578])|(1[02]))[\-\/\s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\-\/\s]?(([0-2][0-9])|(30)))|(02[\-\/\s]?[0-2][0-9]))$"     "0001\02\30"
   2194 "^\d{4}[\-\/\s]?((((0[13578])|(1[02]))[\-\/\s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\-\/\s]?(([0-2][0-9])|(30)))|(02[\-\/\s]?[0-2][0-9]))$"     "9999.15.01"
   2195 "^\d{4}[\-\/\s]?((((0[13578])|(1[02]))[\-\/\s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\-\/\s]?(([0-2][0-9])|(30)))|(02[\-\/\s]?[0-2][0-9]))$"     "2002/3/3"
   2196 "^http\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(/\S*)?$"   G "<0>http://psychopop.org</0>"
   2197 "^http\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(/\S*)?$"   G "<0>http://www.edsroom.com/newUser.asp</0>"
   2198 "^http\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(/\S*)?$"   G "<0>http://unpleasant.jarrin.net/markov/inde</0>"
   2199 "^http\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(/\S*)?$"     "ftp://psychopop.org"
   2200 "^http\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(/\S*)?$"     "http://www.edsroom/"
   2201 "^http\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(/\S*)?$"     "http://un/pleasant.jarrin.net/markov/index.asp"
   2202 "^( [1-9]|[1-9]|0[1-9]|10|11|12)[0-5]\d$"   G "<0>1145</0>"
   2203 "^( [1-9]|[1-9]|0[1-9]|10|11|12)[0-5]\d$"   G "<0>933</0>"
   2204 "^( [1-9]|[1-9]|0[1-9]|10|11|12)[0-5]\d$"   G "<0> 801</0>"
   2205 "^( [1-9]|[1-9]|0[1-9]|10|11|12)[0-5]\d$"     "0000"
   2206 "^( [1-9]|[1-9]|0[1-9]|10|11|12)[0-5]\d$"     "1330"
   2207 "^( [1-9]|[1-9]|0[1-9]|10|11|12)[0-5]\d$"     "8:30"
   2208 "^\d{1,2}\/\d{2,4}$"   G "<0>9/02</0>"
   2209 "^\d{1,2}\/\d{2,4}$"   G "<0>09/2002</0>"
   2210 "^\d{1,2}\/\d{2,4}$"   G "<0>09/02</0>"
   2211 "^\d{1,2}\/\d{2,4}$"     "Fall 2002"
   2212 "^\d{1,2}\/\d{2,4}$"     "Sept 2002"
   2213 "^(|(0[1-9])|(1[0-2]))\/((0[1-9])|(1\d)|(2\d)|(3[0-1]))\/((\d{4}))$"   G "<0>01/01/2001</0>"
   2214 "^(|(0[1-9])|(1[0-2]))\/((0[1-9])|(1\d)|(2\d)|(3[0-1]))\/((\d{4}))$"   G "<0>02/30/2001</0>"
   2215 "^(|(0[1-9])|(1[0-2]))\/((0[1-9])|(1\d)|(2\d)|(3[0-1]))\/((\d{4}))$"   G "<0>12/31/2002</0>"
   2216 "^(|(0[1-9])|(1[0-2]))\/((0[1-9])|(1\d)|(2\d)|(3[0-1]))\/((\d{4}))$"     "1/1/02"
   2217 "^(|(0[1-9])|(1[0-2]))\/((0[1-9])|(1\d)|(2\d)|(3[0-1]))\/((\d{4}))$"     "1/1/2002"
   2218 "^(|(0[1-9])|(1[0-2]))\/((0[1-9])|(1\d)|(2\d)|(3[0-1]))\/((\d{4}))$"     "1/25/2002"
   2219 "^(1?(-?\d{3})-?)?(\d{3})(-?\d{4})$"   G "<0>15615552323</0>"
   2220 "^(1?(-?\d{3})-?)?(\d{3})(-?\d{4})$"   G "<0>1-561-555-1212</0>"
   2221 "^(1?(-?\d{3})-?)?(\d{3})(-?\d{4})$"   G "<0>5613333</0>"
   2222 "^(1?(-?\d{3})-?)?(\d{3})(-?\d{4})$"     "1-555-5555"
   2223 "^(1?(-?\d{3})-?)?(\d{3})(-?\d{4})$"     "15553333"
   2224 "^(1?(-?\d{3})-?)?(\d{3})(-?\d{4})$"     "0-561-555-1212"
   2225 '<[^>]*name[\s]*=[\s]*"?[^\w_]*"?[^>]*>'   G '<0><input type = text name = "bob"></0>'
   2226 '<[^>]*name[\s]*=[\s]*"?[^\w_]*"?[^>]*>'   G '<0><select name = "fred"></0>'
   2227 #'<[^>]*name[\s]*=[\s]*"?[^\w_]*"?[^>]*>'   G '<0><form></0>'    #TODO:  Debug
   2228 '<[^>]*name[\s]*=[\s]*"?[^\w_]*"?[^>]*>'     "<input type = submit>"   # TODO:  \w in pattern
   2229 '<[^>]*name[\s]*=[\s]*"?[^\w_]*"?[^>]*>'     '<font face = "arial">'   # TODO:  \w in pattern
   2230 '<[^>]*name[\s]*=[\s]*"?[^\w_]*"?[^>]*>'      "The dirty brown fox stank like"
   2231 "^(1|01|2|02|3|03|4|04|5|05|6|06|7|07|8|08|9|09|10|11|12{1,2}):(([0-5]{1}[0-9]{1}\s{0,1})([AM|PM|am|pm]{2,2}))\W{0}$"   G "<0>1:00 AM</0>"
   2232 "^(1|01|2|02|3|03|4|04|5|05|6|06|7|07|8|08|9|09|10|11|12{1,2}):(([0-5]{1}[0-9]{1}\s{0,1})([AM|PM|am|pm]{2,2}))\W{0}$"   G "<0>12:00 PM</0>"
   2233 "^(1|01|2|02|3|03|4|04|5|05|6|06|7|07|8|08|9|09|10|11|12{1,2}):(([0-5]{1}[0-9]{1}\s{0,1})([AM|PM|am|pm]{2,2}))\W{0}$"   G "<0>1:00am</0>"
   2234 "^(1|01|2|02|3|03|4|04|5|05|6|06|7|07|8|08|9|09|10|11|12{1,2}):(([0-5]{1}[0-9]{1}\s{0,1})([AM|PM|am|pm]{2,2}))\W{0}$"     "24:00"
   2235 "^\d*$"   G "<0>123</0>"
   2236 "^\d*$"   G "<0>000</0>"
   2237 "^\d*$"   G "<0>43</0>"
   2238 "^\d*$"     "asbc"
   2239 "^\d*$"     "-34"
   2240 "^\d*$"     "3.1415"
   2241 "^[-+]?\d*$"   G "<0>123</0>"
   2242 "^[-+]?\d*$"   G "<0>-123</0>"
   2243 "^[-+]?\d*$"   G "<0>+123</0>"
   2244 "^[-+]?\d*$"     "abc"
   2245 "^[-+]?\d*$"     "3.14159"
   2246 "^[-+]?\d*$"     "-3.14159"
   2247 "^\d*\.?\d*$"   G "<0>123</0>"
   2248 "^\d*\.?\d*$"   G "<0>3.14159</0>"
   2249 "^\d*\.?\d*$"   G "<0>.234</0>"
   2250 "^\d*\.?\d*$"     "abc"
   2251 "^\d*\.?\d*$"     "-3.14159"
   2252 "^\d*\.?\d*$"     "3.4.2"
   2253 "^((\d{5}-\d{4})|(\d{5})|([A-Z]\d[A-Z]\s\d[A-Z]\d))$"   G "<0>44240</0>"
   2254 "^((\d{5}-\d{4})|(\d{5})|([A-Z]\d[A-Z]\s\d[A-Z]\d))$"   G "<0>44240-5555</0>"
   2255 "^((\d{5}-\d{4})|(\d{5})|([A-Z]\d[A-Z]\s\d[A-Z]\d))$"   G "<0>T2P 3C7</0>"
   2256 "^((\d{5}-\d{4})|(\d{5})|([A-Z]\d[A-Z]\s\d[A-Z]\d))$"     "44240ddd"
   2257 "^((\d{5}-\d{4})|(\d{5})|([A-Z]\d[A-Z]\s\d[A-Z]\d))$"     "t44240-55"
   2258 "^((\d{5}-\d{4})|(\d{5})|([A-Z]\d[A-Z]\s\d[A-Z]\d))$"     "t2p3c7"
   2259 "^[\\(]{0,1}([0-9]){3}[\\)]{0,1}[ ]?([^0-1]){1}([0-9]){2}[ ]?[-]?[ ]?([0-9]){4}[ ]*((x){0,1}([0-9]){1,5}){0,1}$"   G "<0>(910)456-7890</0>"
   2260 "^[\\(]{0,1}([0-9]){3}[\\)]{0,1}[ ]?([^0-1]){1}([0-9]){2}[ ]?[-]?[ ]?([0-9]){4}[ ]*((x){0,1}([0-9]){1,5}){0,1}$"   G "<0>(910)456-8970 x12</0>"
   2261 "^[\\(]{0,1}([0-9]){3}[\\)]{0,1}[ ]?([^0-1]){1}([0-9]){2}[ ]?[-]?[ ]?([0-9]){4}[ ]*((x){0,1}([0-9]){1,5}){0,1}$"   G "<0>(910)456-8970 1211</0>"
   2262 "^[\\(]{0,1}([0-9]){3}[\\)]{0,1}[ ]?([^0-1]){1}([0-9]){2}[ ]?[-]?[ ]?([0-9]){4}[ ]*((x){0,1}([0-9]){1,5}){0,1}$"     "(910) 156-7890"
   2263 "^[\\(]{0,1}([0-9]){3}[\\)]{0,1}[ ]?([^0-1]){1}([0-9]){2}[ ]?[-]?[ ]?([0-9]){4}[ ]*((x){0,1}([0-9]){1,5}){0,1}$"     "(910) 056-7890"
   2264 "^[\\(]{0,1}([0-9]){3}[\\)]{0,1}[ ]?([^0-1]){1}([0-9]){2}[ ]?[-]?[ ]?([0-9]){4}[ ]*((x){0,1}([0-9]){1,5}){0,1}$"     "(910) 556-7890 x"
   2265 "^((0?[1-9]|[12][1-9]|3[01])\.(0?[13578]|1[02])\.20[0-9]{2}|(0?[1-9]|[12][1-9]|30)\.(0?[13456789]|1[012])\.20[0-9]{2}|(0?[1-9]|1[1-9]|2[0-8])\.(0?[123456789]|1[012])\.20[0-9]{2}|(0?[1-9]|[12][1-9])\.(0?[123456789]|1[012])\.20(00|04|08|12|16|20|24|28|32|36|40|44|48|52|56|60|64|68|72|76|80|84|88|92|96))$"   G "<0>31.01.2002</0>"
   2266 "^((0?[1-9]|[12][1-9]|3[01])\.(0?[13578]|1[02])\.20[0-9]{2}|(0?[1-9]|[12][1-9]|30)\.(0?[13456789]|1[012])\.20[0-9]{2}|(0?[1-9]|1[1-9]|2[0-8])\.(0?[123456789]|1[012])\.20[0-9]{2}|(0?[1-9]|[12][1-9])\.(0?[123456789]|1[012])\.20(00|04|08|12|16|20|24|28|32|36|40|44|48|52|56|60|64|68|72|76|80|84|88|92|96))$"   G "<0>29.2.2004</0>"
   2267 "^((0?[1-9]|[12][1-9]|3[01])\.(0?[13578]|1[02])\.20[0-9]{2}|(0?[1-9]|[12][1-9]|30)\.(0?[13456789]|1[012])\.20[0-9]{2}|(0?[1-9]|1[1-9]|2[0-8])\.(0?[123456789]|1[012])\.20[0-9]{2}|(0?[1-9]|[12][1-9])\.(0?[123456789]|1[012])\.20(00|04|08|12|16|20|24|28|32|36|40|44|48|52|56|60|64|68|72|76|80|84|88|92|96))$"   G "<0>09.02.2005</0>"
   2268 "^((0?[1-9]|[12][1-9]|3[01])\.(0?[13578]|1[02])\.20[0-9]{2}|(0?[1-9]|[12][1-9]|30)\.(0?[13456789]|1[012])\.20[0-9]{2}|(0?[1-9]|1[1-9]|2[0-8])\.(0?[123456789]|1[012])\.20[0-9]{2}|(0?[1-9]|[12][1-9])\.(0?[123456789]|1[012])\.20(00|04|08|12|16|20|24|28|32|36|40|44|48|52|56|60|64|68|72|76|80|84|88|92|96))$"     "31.11.2002"
   2269 "^((0?[1-9]|[12][1-9]|3[01])\.(0?[13578]|1[02])\.20[0-9]{2}|(0?[1-9]|[12][1-9]|30)\.(0?[13456789]|1[012])\.20[0-9]{2}|(0?[1-9]|1[1-9]|2[0-8])\.(0?[123456789]|1[012])\.20[0-9]{2}|(0?[1-9]|[12][1-9])\.(0?[123456789]|1[012])\.20(00|04|08|12|16|20|24|28|32|36|40|44|48|52|56|60|64|68|72|76|80|84|88|92|96))$"     "29.2.2002"
   2270 "^((0?[1-9]|[12][1-9]|3[01])\.(0?[13578]|1[02])\.20[0-9]{2}|(0?[1-9]|[12][1-9]|30)\.(0?[13456789]|1[012])\.20[0-9]{2}|(0?[1-9]|1[1-9]|2[0-8])\.(0?[123456789]|1[012])\.20[0-9]{2}|(0?[1-9]|[12][1-9])\.(0?[123456789]|1[012])\.20(00|04|08|12|16|20|24|28|32|36|40|44|48|52|56|60|64|68|72|76|80|84|88|92|96))$"     "33.06.2000"
   2271 "^(0[1-9]|1[0-2])\/((0[1-9]|2\d)|3[0-1])\/(19\d\d|200[0-3])$"   G "<0>12/31/2003</0>"
   2272 "^(0[1-9]|1[0-2])\/((0[1-9]|2\d)|3[0-1])\/(19\d\d|200[0-3])$"   G "<0>01/01/1900</0>"
   2273 "^(0[1-9]|1[0-2])\/((0[1-9]|2\d)|3[0-1])\/(19\d\d|200[0-3])$"   G "<0>11/31/2002</0>"
   2274 "^(0[1-9]|1[0-2])\/((0[1-9]|2\d)|3[0-1])\/(19\d\d|200[0-3])$"     "1/1/2002"
   2275 "^(0[1-9]|1[0-2])\/((0[1-9]|2\d)|3[0-1])\/(19\d\d|200[0-3])$"     "01/01/02"
   2276 "^(0[1-9]|1[0-2])\/((0[1-9]|2\d)|3[0-1])\/(19\d\d|200[0-3])$"     "01/01/2004"
   2277 "^((((([13578])|(1[0-2]))[\-\/\s]?(([1-9])|([1-2][0-9])|(3[01])))|((([469])|(11))[\-\/\s]?(([1-9])|([1-2][0-9])|(30)))|(2[\-\/\s]?(([1-9])|([1-2][0-9]))))[\-\/\s]?\d{4})(\s((([1-9])|(1[02]))\:([0-5][0-9])((\s)|(\:([0-5][0-9])\s))([AM|PM|am|pm]{2,2})))?$"   G "<0>3/3/2003</0>"
   2278 "^((((([13578])|(1[0-2]))[\-\/\s]?(([1-9])|([1-2][0-9])|(3[01])))|((([469])|(11))[\-\/\s]?(([1-9])|([1-2][0-9])|(30)))|(2[\-\/\s]?(([1-9])|([1-2][0-9]))))[\-\/\s]?\d{4})(\s((([1-9])|(1[02]))\:([0-5][0-9])((\s)|(\:([0-5][0-9])\s))([AM|PM|am|pm]{2,2})))?$"   G "<0>3/3/2002 3:33 pm</0>"
   2279 "^((((([13578])|(1[0-2]))[\-\/\s]?(([1-9])|([1-2][0-9])|(3[01])))|((([469])|(11))[\-\/\s]?(([1-9])|([1-2][0-9])|(30)))|(2[\-\/\s]?(([1-9])|([1-2][0-9]))))[\-\/\s]?\d{4})(\s((([1-9])|(1[02]))\:([0-5][0-9])((\s)|(\:([0-5][0-9])\s))([AM|PM|am|pm]{2,2})))?$"   G "<0>3/3/2003 3:33:33 am</0>"
   2280 "^((((([13578])|(1[0-2]))[\-\/\s]?(([1-9])|([1-2][0-9])|(3[01])))|((([469])|(11))[\-\/\s]?(([1-9])|([1-2][0-9])|(30)))|(2[\-\/\s]?(([1-9])|([1-2][0-9]))))[\-\/\s]?\d{4})(\s((([1-9])|(1[02]))\:([0-5][0-9])((\s)|(\:([0-5][0-9])\s))([AM|PM|am|pm]{2,2})))?$"     "13/1/2002"
   2281 "^((((([13578])|(1[0-2]))[\-\/\s]?(([1-9])|([1-2][0-9])|(3[01])))|((([469])|(11))[\-\/\s]?(([1-9])|([1-2][0-9])|(30)))|(2[\-\/\s]?(([1-9])|([1-2][0-9]))))[\-\/\s]?\d{4})(\s((([1-9])|(1[02]))\:([0-5][0-9])((\s)|(\:([0-5][0-9])\s))([AM|PM|am|pm]{2,2})))?$"     "3/3/2002 3:33"
   2282 "^((((([13578])|(1[0-2]))[\-\/\s]?(([1-9])|([1-2][0-9])|(3[01])))|((([469])|(11))[\-\/\s]?(([1-9])|([1-2][0-9])|(30)))|(2[\-\/\s]?(([1-9])|([1-2][0-9]))))[\-\/\s]?\d{4})(\s((([1-9])|(1[02]))\:([0-5][0-9])((\s)|(\:([0-5][0-9])\s))([AM|PM|am|pm]{2,2})))?$"     "31/3/2002"
   2283 "([a-zA-Z]:(\\w+)*\\[a-zA-Z0_9]+)?.xls"   G "<0>E:\DyAGT\SD01A_specV2.xls</0>"
   2284 "([a-zA-Z]:(\\w+)*\\[a-zA-Z0_9]+)?.xls"     "E:\DyAGT\SD01A_specV2.txt"
   2285 "(((0[13578]|10|12)([-./])(0[1-9]|[12][0-9]|3[01])([-./])(\d{4}))|((0[469]|11)([-./])([0][1-9]|[12][0-9]|30)([-./])(\d{4}))|((2)([-./])(0[1-9]|1[0-9]|2[0-8])([-./])(\d{4}))|((2)(\.|-|\/)(29)([-./])([02468][048]00))|((2)([-./])(29)([-./])([13579][26]00))|((2)([-./])(29)([-./])([0-9][0-9][0][48]))|((2)([-./])(29)([-./])([0-9][0-9][2468][048]))|((2)([-./])(29)([-./])([0-9][0-9][13579][26])))"   G "<0>02/29/2084</0>"
   2286 "(((0[13578]|10|12)([-./])(0[1-9]|[12][0-9]|3[01])([-./])(\d{4}))|((0[469]|11)([-./])([0][1-9]|[12][0-9]|30)([-./])(\d{4}))|((2)([-./])(0[1-9]|1[0-9]|2[0-8])([-./])(\d{4}))|((2)(\.|-|\/)(29)([-./])([02468][048]00))|((2)([-./])(29)([-./])([13579][26]00))|((2)([-./])(29)([-./])([0-9][0-9][0][48]))|((2)([-./])(29)([-./])([0-9][0-9][2468][048]))|((2)([-./])(29)([-./])([0-9][0-9][13579][26])))"   G "<0>01/31/2000</0>"
   2287 "(((0[13578]|10|12)([-./])(0[1-9]|[12][0-9]|3[01])([-./])(\d{4}))|((0[469]|11)([-./])([0][1-9]|[12][0-9]|30)([-./])(\d{4}))|((2)([-./])(0[1-9]|1[0-9]|2[0-8])([-./])(\d{4}))|((2)(\.|-|\/)(29)([-./])([02468][048]00))|((2)([-./])(29)([-./])([13579][26]00))|((2)([-./])(29)([-./])([0-9][0-9][0][48]))|((2)([-./])(29)([-./])([0-9][0-9][2468][048]))|((2)([-./])(29)([-./])([0-9][0-9][13579][26])))"   G "<0>11/30/2000</0>"
   2288 "(((0[13578]|10|12)([-./])(0[1-9]|[12][0-9]|3[01])([-./])(\d{4}))|((0[469]|11)([-./])([0][1-9]|[12][0-9]|30)([-./])(\d{4}))|((2)([-./])(0[1-9]|1[0-9]|2[0-8])([-./])(\d{4}))|((2)(\.|-|\/)(29)([-./])([02468][048]00))|((2)([-./])(29)([-./])([13579][26]00))|((2)([-./])(29)([-./])([0-9][0-9][0][48]))|((2)([-./])(29)([-./])([0-9][0-9][2468][048]))|((2)([-./])(29)([-./])([0-9][0-9][13579][26])))"     "02/29/2083"
   2289 "(((0[13578]|10|12)([-./])(0[1-9]|[12][0-9]|3[01])([-./])(\d{4}))|((0[469]|11)([-./])([0][1-9]|[12][0-9]|30)([-./])(\d{4}))|((2)([-./])(0[1-9]|1[0-9]|2[0-8])([-./])(\d{4}))|((2)(\.|-|\/)(29)([-./])([02468][048]00))|((2)([-./])(29)([-./])([13579][26]00))|((2)([-./])(29)([-./])([0-9][0-9][0][48]))|((2)([-./])(29)([-./])([0-9][0-9][2468][048]))|((2)([-./])(29)([-./])([0-9][0-9][13579][26])))"     "11/31/2000"
   2290 "(((0[13578]|10|12)([-./])(0[1-9]|[12][0-9]|3[01])([-./])(\d{4}))|((0[469]|11)([-./])([0][1-9]|[12][0-9]|30)([-./])(\d{4}))|((2)([-./])(0[1-9]|1[0-9]|2[0-8])([-./])(\d{4}))|((2)(\.|-|\/)(29)([-./])([02468][048]00))|((2)([-./])(29)([-./])([13579][26]00))|((2)([-./])(29)([-./])([0-9][0-9][0][48]))|((2)([-./])(29)([-./])([0-9][0-9][2468][048]))|((2)([-./])(29)([-./])([0-9][0-9][13579][26])))"     "01/32/2000"
   2291 "^[a-zA-Z0-9\s .\-]+$"   G "<0>2222 Mock St.</0>"   # TODO:  \s in patterns not implemented
   2292 "^[a-zA-Z0-9\s .\-]+$"   G "<0>1 A St.</0>"
   2293 "^[a-zA-Z0-9\s .\-]+$"   G "<0>555-1212</0>"
   2294 "^[a-zA-Z0-9\s.\-]+$"     "[A Street]"
   2295 "^[a-zA-Z0-9\s.\-]+$"     "(3 A St.)"
   2296 "^[a-zA-Z0-9\s.\-]+$"     "{34 C Ave.}"
   2297 "^[a-zA-Z0-9\s.\-]+$"     "Last.*?(\d+.?\d*)"
   2298 "^[a-zA-Z0-9\s .\-]+$"   G "<TR><TD ALIGN=RIGHT> </TD><TD>Last</TD><TD ALIGN=RIGHT NOW"
   2299 "^[a-zA-Z0-9\s.\-]+$"     "[AADDSS]"
   2300 "^([0-9]( |-)?)?(\(?[0-9]{3}\)?|[0-9]{3})( |-)?([0-9]{3}( |-)?[0-9]{4}|[a-zA-Z0-9]{7})$"   G "<0>1-(123)-123-1234</0>"
   2301 "^([0-9]( |-)?)?(\(?[0-9]{3}\)?|[0-9]{3})( |-)?([0-9]{3}( |-)?[0-9]{4}|[a-zA-Z0-9]{7})$"   G "<0>123 123 1234</0>"
   2302 "^([0-9]( |-)?)?(\(?[0-9]{3}\)?|[0-9]{3})( |-)?([0-9]{3}( |-)?[0-9]{4}|[a-zA-Z0-9]{7})$"   G "<0>1-800-ALPHNUM</0>"
   2303 "^([0-9]( |-)?)?(\(?[0-9]{3}\)?|[0-9]{3})( |-)?([0-9]{3}( |-)?[0-9]{4}|[a-zA-Z0-9]{7})$"     "1.123.123.1234"
   2304 "^([0-9]( |-)?)?(\(?[0-9]{3}\)?|[0-9]{3})( |-)?([0-9]{3}( |-)?[0-9]{4}|[a-zA-Z0-9]{7})$"     "(123)-1234-123"
   2305 "^([0-9]( |-)?)?(\(?[0-9]{3}\)?|[0-9]{3})( |-)?([0-9]{3}( |-)?[0-9]{4}|[a-zA-Z0-9]{7})$"     "123-1234"
   2306 "^([0-1][0-9]|[2][0-3]):([0-5][0-9])$"   G "<0>02:04</0>"
   2307 "^([0-1][0-9]|[2][0-3]):([0-5][0-9])$"   G "<0>16:56</0>"
   2308 "^([0-1][0-9]|[2][0-3]):([0-5][0-9])$"   G "<0>23:59</0>"
   2309 "^([0-1][0-9]|[2][0-3]):([0-5][0-9])$"     "02:00 PM"
   2310 "^([0-1][0-9]|[2][0-3]):([0-5][0-9])$"     "PM2:00"
   2311 "^([0-1][0-9]|[2][0-3]):([0-5][0-9])$"     "24:00"
   2312 "^[0,1]?\d{1}\/(([0-2]?\d{1})|([3][0,1]{1}))\/(([1]{1}[9]{1}[9]{1}\d{1})|([2-9]{1}\d{3}))$"   G "<0>01/01/1990</0>"
   2313 "^[0,1]?\d{1}\/(([0-2]?\d{1})|([3][0,1]{1}))\/(([1]{1}[9]{1}[9]{1}\d{1})|([2-9]{1}\d{3}))$"   G "<0>12/12/9999</0>"
   2314 "^[0,1]?\d{1}\/(([0-2]?\d{1})|([3][0,1]{1}))\/(([1]{1}[9]{1}[9]{1}\d{1})|([2-9]{1}\d{3}))$"   G "<0>3/28/2001</0>"
   2315 "^[0,1]?\d{1}\/(([0-2]?\d{1})|([3][0,1]{1}))\/(([1]{1}[9]{1}[9]{1}\d{1})|([2-9]{1}\d{3}))$"     "3-8-01"
   2316 "^[0,1]?\d{1}\/(([0-2]?\d{1})|([3][0,1]{1}))\/(([1]{1}[9]{1}[9]{1}\d{1})|([2-9]{1}\d{3}))$"     "13/32/1001"
   2317 "^[0,1]?\d{1}\/(([0-2]?\d{1})|([3][0,1]{1}))\/(([1]{1}[9]{1}[9]{1}\d{1})|([2-9]{1}\d{3}))$"     "03/32/1989"
   2318 "((\(\d{3}\)?)|(\d{3}))([\s \-./]?)(\d{3})([\s \-./]?)(\d{4})"   G "<0>1.2123644567</0>"
   2319 "((\(\d{3}\)?)|(\d{3}))([\s \-./]?)(\d{3})([\s \-./]?)(\d{4})"   G "<0>0-234.567/8912</0>"
   2320 "((\(\d{3}\)?)|(\d{3}))([\s \-./]?)(\d{3})([\s \-./]?)(\d{4})"   G "<0>1-(212)-123 4567</0>"
   2321 "((\(\d{3}\)?)|(\d{3}))([\s \-./]?)(\d{3})([\s \-./]?)(\d{4})"     "0-212364345"
   2322 "((\(\d{3}\)?)|(\d{3}))([\s \-./]?)(\d{3})([\s \-./]?)(\d{4})"     "1212-364,4321"
   2323 "((\(\d{3}\)?)|(\d{3}))([\s \-./]?)(\d{3})([\s \-./]?)(\d{4})"     "0212\345/6789"
   2324 "^([0-9]{6}[\s \-]{1}[0-9]{12}|[0-9]{18})$"   G "<0>000000 000000000000</0>"
   2325 "^([0-9]{6}[\s \-]{1}[0-9]{12}|[0-9]{18})$"   G "<0>000000-000000000000</0>"
   2326 "^([0-9]{6}[\s \-]{1}[0-9]{12}|[0-9]{18})$"   G "<0>000000000000000000</0>"
   2327 "^([0-9]{6}[\s \-]{1}[0-9]{12}|[0-9]{18})$"     "000000_000000000000"
   2328 "^(([1-9])|(0[1-9])|(1[0-2]))\/((0[1-9])|([1-31]))\/((\d{2})|(\d{4}))$"   G "<0>01/01/2001</0>"
   2329 "^(([1-9])|(0[1-9])|(1[0-2]))\/((0[1-9])|([1-31]))\/((\d{2})|(\d{4}))$"   G "<0>1/1/2001</0>"
   2330 "^(([1-9])|(0[1-9])|(1[0-2]))\/((0[1-9])|([1-31]))\/((\d{2})|(\d{4}))$"   G "<0>01/1/01</0>"
   2331 "^(([1-9])|(0[1-9])|(1[0-2]))\/((0[1-9])|([1-31]))\/((\d{2})|(\d{4}))$"     "13/01/2001"
   2332 "^(([1-9])|(0[1-9])|(1[0-2]))\/((0[1-9])|([1-31]))\/((\d{2})|(\d{4}))$"     "1/2/100"
   2333 "^(([1-9])|(0[1-9])|(1[0-2]))\/((0[1-9])|([1-31]))\/((\d{2})|(\d{4}))$"     "09/32/2001"
   2334 "^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(.[0-9][0-9])?$"   G "<0>$3,023,123.34</0>"
   2335 "^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(.[0-9][0-9])?$"   G "<0>9,876,453</0>"
   2336 "^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(.[0-9][0-9])?$"   G "<0>123456.78</0>"
   2337 "^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(.[0-9][0-9])?$"     "4,33,234.34"
   2338 "^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(.[0-9][0-9])?$"     "$1.234"
   2339 "^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(.[0-9][0-9])?$"     "abc"
   2340 "^\d{5}$|^\d{5}-\d{4}$"   G "<0>55555-5555</0>"
   2341 "^\d{5}$|^\d{5}-\d{4}$"   G "<0>34564-3342</0>"
   2342 "^\d{5}$|^\d{5}-\d{4}$"   G "<0>90210</0>"
   2343 "^\d{5}$|^\d{5}-\d{4}$"     "434454444"
   2344 "^\d{5}$|^\d{5}-\d{4}$"     "645-32-2345"
   2345 "^\d{5}$|^\d{5}-\d{4}$"     "abc"
   2346 "^\d{3}-\d{2}-\d{4}$"   G "<0>333-22-4444</0>"
   2347 "^\d{3}-\d{2}-\d{4}$"   G "<0>123-45-6789</0>"
   2348 "^\d{3}-\d{2}-\d{4}$"     "123456789"
   2349 "^\d{3}-\d{2}-\d{4}$"     "SSN"
   2350 "^[2-9]\d{2}-\d{3}-\d{4}$"   G "<0>800-555-5555</0>"
   2351 "^[2-9]\d{2}-\d{3}-\d{4}$"   G "<0>333-444-5555</0>"
   2352 "^[2-9]\d{2}-\d{3}-\d{4}$"   G "<0>212-666-1234</0>"
   2353 "^[2-9]\d{2}-\d{3}-\d{4}$"     "000-000-0000"
   2354 "^[2-9]\d{2}-\d{3}-\d{4}$"     "123-456-7890"
   2355 "^[2-9]\d{2}-\d{3}-\d{4}$"     "2126661234"
   2356 "^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$"   G "<0>44240</0>"
   2357 "^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$"   G "<0>44240-5555</0>"
   2358 "^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$"   G "<0>G3H 6A3</0>"
   2359 "^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$"     "Ohio"
   2360 "^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$"     "abc"
   2361 "^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$"     "g3h6a3"
   2362 "[0-9]{4}\s*[a-zA-Z]{2}"   G "<0>1054 WD</0>"
   2363 "[0-9]{4}\s*[a-zA-Z]{2}"   G "<0>1054WD</0>"
   2364 "[0-9]{4}\s*[a-zA-Z]{2}"   G "<0>1054 wd</0>"
   2365 "[0-9]{4}\s*[a-zA-Z]{2}"     "10543"
   2366 "(^1300\d{6}$)|(^1800|1900|1902\d{6}$)|(^0[2|3|7|8]{1}[0-9]{8}$)|(^13\d{4}$)|(^04\d{2,3}\d{6}$)"   G "<0>0732105432</0>"
   2367 "(^1300\d{6}$)|(^1800|1900|1902\d{6}$)|(^0[2|3|7|8]{1}[0-9]{8}$)|(^13\d{4}$)|(^04\d{2,3}\d{6}$)"   G "<0>1300333444</0>"
   2368 "(^1300\d{6}$)|(^1800|1900|1902\d{6}$)|(^0[2|3|7|8]{1}[0-9]{8}$)|(^13\d{4}$)|(^04\d{2,3}\d{6}$)"   G "<0>131313</0>"
   2369 "(^1300\d{6}$)|(^1800|1900|1902\d{6}$)|(^0[2|3|7|8]{1}[0-9]{8}$)|(^13\d{4}$)|(^04\d{2,3}\d{6}$)"     "32105432"
   2370 "(^1300\d{6}$)|(^1800|1900|1902\d{6}$)|(^0[2|3|7|8]{1}[0-9]{8}$)|(^13\d{4}$)|(^04\d{2,3}\d{6}$)"     "13000456"
   2371 "^((https?|ftp)\://((\[?(\d{1,3}\.){3}\d{1,3}\]?)|(([\-a-zA-Z0-9]+\.)+[a-zA-Z]{2,4}))(\:\d+)?(/[\-a-zA-Z0-9._?,'+\&%$#=~\\]+)*/?)$"   G "<0>http://207.68.172.254/home.ashx</0>"
   2372 "^((https?|ftp)\://((\[?(\d{1,3}\.){3}\d{1,3}\]?)|(([\-a-zA-Z0-9]+\.)+[a-zA-Z]{2,4}))(\:\d+)?(/[\-a-zA-Z0-9._?,'+\&%$#=~\\]+)*/?)$"   G "<0>ftp://ftp.netscape.com/</0>"
   2373 "^((https?|ftp)\://((\[?(\d{1,3}\.){3}\d{1,3}\]?)|(([\-a-zA-Z0-9]+\.)+[a-zA-Z]{2,4}))(\:\d+)?(/[\-a-zA-Z0-9._?,'+\&%$#=~\\]+)*/?)$"   G "<0>https://www.brinkster.com/login.asp</0>"
   2374 "^((https?|ftp)\://((\[?(\d{1,3}\.){3}\d{1,3}\]?)|(([\-a-zA-Z0-9]+\.)+[a-zA-Z]{2,4}))(\:\d+)?(/[\-a-zA-Z0-9._?,'+\&%$#=~\\]+)*/?)$"     "htp://mistake.com/"
   2375 "^((https?|ftp)\://((\[?(\d{1,3}\.){3}\d{1,3}\]?)|(([\-a-zA-Z0-9]+\.)+[a-zA-Z]{2,4}))(\:\d+)?(/[\-a-zA-Z0-9._?,'+\&%$#=~\\]+)*/?)$"     "http://www_address.com/"
   2376 "^((https?|ftp)\://((\[?(\d{1,3}\.){3}\d{1,3}\]?)|(([\-a-zA-Z0-9]+\.)+[a-zA-Z]{2,4}))(\:\d+)?(/[\-a-zA-Z0-9._?,'+\&%$#=~\\]+)*/?)$"     "ftp://www.files.com/file with spaces.txt"
   2377 "([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})"   G "<0>2002-11-03</0>"
   2378 "([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})"   G "<0>2007-17-08</0>"
   2379 "([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})"   G "<0>9999-99-99</0>"
   2380 "([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})"     "2002/17/18"
   2381 "([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})"     "2002.18.45"
   2382 "([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})"     "18.45.2002"
   2383 "^\$?(\d{1,3}(\,\d{3})*|(\d+))(\.\d{0,2})?$"   G "<0>$0,234.50</0>"
   2384 "^\$?(\d{1,3}(\,\d{3})*|(\d+))(\.\d{0,2})?$"   G "<0>0234.5</0>"
   2385 "^\$?(\d{1,3}(\,\d{3})*|(\d+))(\.\d{0,2})?$"   G "<0>0,234.</0>"
   2386 "^\$?(\d{1,3}(\,\d{3})*|(\d+))(\.\d{0,2})?$"     "$1,23,50"
   2387 "^\$?(\d{1,3}(\,\d{3})*|(\d+))(\.\d{0,2})?$"     "$123.123"
   2388 "(^\d{5}-\d{3}|^\d{2}.\d{3}-\d{3}|\d{8})"   G "<0>12.345-678</0>"
   2389 "(^\d{5}-\d{3}|^\d{2}.\d{3}-\d{3}|\d{8})"   G "<0>12345-678</0>"
   2390 "(^\d{5}-\d{3}|^\d{2}.\d{3}-\d{3}|\d{8})"   G "<0>12345678</0>"
   2391 "(^\d{5}-\d{3}|^\d{2}.\d{3}-\d{3}|\d{8})"     "12.345678"
   2392 "(^\d{5}-\d{3}|^\d{2}.\d{3}-\d{3}|\d{8})"     "12345-1"
   2393 "(^\d{5}-\d{3}|^\d{2}.\d{3}-\d{3}|\d{8})"     "123"
   2394 '^([a-zA-Z]\:|\\)\\([^\\]+\\)*[^\/:*?"<>|]+\.htm(l)?$'   G "<0>x:\\test\\testing.htm</0>"
   2395 '^([a-zA-Z]\:|\\)\\([^\\]+\\)*[^\/:*?"<>|]+\.htm(l)?$'   G "<0>x:\\test\\test#$ ing.html</0>"
   2396 '^([a-zA-Z]\:|\\)\\([^\\]+\\)*[^\/:*?"<>|]+\.htm(l)?$'   G "<0>\\\\test\testing.html</0>"
   2397 '^([a-zA-Z]\:|\\)\\([^\\]+\\)*[^\/:*?"<>|]+\.htm(l)?$'     "x:\test\test/ing.htm"
   2398 '^([a-zA-Z]\:|\\)\\([^\\]+\\)*[^\/:*?"<>|]+\.htm(l)?$'     "x:\test\test*.htm"
   2399 '^([a-zA-Z]\:|\\)\\([^\\]+\\)*[^\/:*?"<>|]+\.htm(l)?$'     "\\test?<.htm"
   2400 "^[1-9]{1}[0-9]{3}$"   G "<0>1234</0>"
   2401 "^[1-9]{1}[0-9]{3}$"     "123"
   2402 "^[1-9]{1}[0-9]{3}$"     "123A"
   2403 "^[A-Z]{1}( |-)?[1-9]{1}[0-9]{3}$"   G "<0>A-1234</0>"
   2404 "^[A-Z]{1}( |-)?[1-9]{1}[0-9]{3}$"   G "<0>A 1234</0>"
   2405 "^[A-Z]{1}( |-)?[1-9]{1}[0-9]{3}$"   G "<0>A1234</0>"
   2406 "^[A-Z]{1}( |-)?[1-9]{1}[0-9]{3}$"     "AA-1234"
   2407 "^[A-Z]{1}( |-)?[1-9]{1}[0-9]{3}$"     "A12345"
   2408 "^(F-)?[0-9]{5}$"   G "<0>12345</0>"
   2409 "^(F-)?[0-9]{5}$"   G "<0>F-12345</0>"
   2410 "^(F-)?[0-9]{5}$"     "F12345"
   2411 "^(F-)?[0-9]{5}$"     "F-123456"
   2412 "^(F-)?[0-9]{5}$"     "123456"
   2413 "^(V-|I-)?[0-9]{4}$"   G "<0>1234</0>"
   2414 "^(V-|I-)?[0-9]{4}$"   G "<0>V-1234</0>"
   2415 "^(V-|I-)?[0-9]{4}$"     "12345"
   2416 "^[1-9]{1}[0-9]{3} ?[A-Z]{2}$"   G "<0>1234 AB</0>"
   2417 "^[1-9]{1}[0-9]{3} ?[A-Z]{2}$"   G "<0>1234AB</0>"
   2418 "^[1-9]{1}[0-9]{3} ?[A-Z]{2}$"     "123AB"
   2419 "^[1-9]{1}[0-9]{3} ?[A-Z]{2}$"     "1234AAA"
   2420 "^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$"   G "<0>12345</0>"
   2421 "^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$"   G "<0>10234</0>"
   2422 "^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$"   G "<0>01234</0>"
   2423 "^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$"     "00123"
   2424 "^(/w|/W|[^<>+?$%\{}\&])+$"   G "<0>John Doe Sr.</0>"
   2425 "^(/w|/W|[^<>+?$%\{}\&])+$"   G "<0>100 Elm St., Suite 25</0>"
   2426 "^(/w|/W|[^<>+?$%\{}\&])+$"   G "<0>Valerie's Gift Shop</0>"
   2427 "^(/w|/W|[^<>+?$%\{}\&])+$"     "<h1>Hey</h1>"
   2428 /<[a-zA-Z][^>]*\son\w+=(\w+|'[^']*'|"[^"]*")[^>]*>/   G '<0><IMG onmouseover="window.close()"></0>'
   2429 /<[a-zA-Z][^>]*\son\w+=(\w+|'[^']*'|"[^"]*")[^>]*>/     '<IMG src="star.gif">'
   2430 "(?!^0*$)(?!^0*\.0*$)^\d{1,5}(\.\d{1,3})?$"   G "<0>1</0>"
   2431 "(?!^0*$)(?!^0*\.0*$)^\d{1,5}(\.\d{1,3})?$"   G "<0>12345.123</0>"
   2432 "(?!^0*$)(?!^0*\.0*$)^\d{1,5}(\.\d{1,3})?$"   G "<0>0.5</0>"
   2433 "(?!^0*$)(?!^0*\.0*$)^\d{1,5}(\.\d{1,3})?$"     "0"
   2434 "(?!^0*$)(?!^0*\.0*$)^\d{1,5}(\.\d{1,3})?$"     "0.0"
   2435 "(?!^0*$)(?!^0*\.0*$)^\d{1,5}(\.\d{1,3})?$"     "123456.1234"
   2436 "^.+@[^\.].*\.[a-z]{2,}$"   G "<0>whatever@somewhere.museum</0>"
   2437 "^.+@[^\.].*\.[a-z]{2,}$"   G "<0>foreignchars@myforeigncharsdomain.nu</0>"
   2438 "^.+@[^\.].*\.[a-z]{2,}$"   G "<0>me+mysomething@mydomain.com</0>"
   2439 "^.+@[^\.].*\.[a-z]{2,}$"     "a@b.c"
   2440 "^.+@[^\.].*\.[a-z]{2,}$"     "me@.my.com"
   2441 "^.+@[^\.].*\.[a-z]{2,}$"     "a@b.comFOREIGNCHAR"
   2442 "^(\d{5}-\d{4}|\d{5})$"   G "<0>12345</0>"
   2443 "^(\d{5}-\d{4}|\d{5})$"   G "<0>12345-1234</0>"
   2444 "^(\d{5}-\d{4}|\d{5})$"     "12345-12345"
   2445 "^(\d{5}-\d{4}|\d{5})$"     "123"
   2446 "^(\d{5}-\d{4}|\d{5})$"     "12345-abcd"
   2447 "^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$"   G "<0>0.0.0.0</0>"
   2448 "^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$"   G "<0>255.255.255.02</0>"
   2449 "^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$"   G "<0>192.168.0.136</0>"
   2450 "^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$"     "256.1.3.4"
   2451 "^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$"     "023.44.33.22"
   2452 "^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$"     "10.57.98.23."
   2453 "<img([^>]*[^/])>"   G '<0><img src="bob"></0>'
   2454 "<img([^>]*[^/])>"     '<img src="bob" />'
   2455 "<!--[\s\S]*?-->"   G "<0><!-- comments --></0>"
   2456 "<!--[\s\S]*?-->"   G "<0><!-- x = a > b - 3 --></0>"
   2457 "<!--[\s\S]*?-->"     "<COMMENTS>this is a comment</COMMENTS>"
   2458 "<!--[\p{Zs}\P{Zs}]*?-->"   G "<0><!-- comments --></0>"
   2459 "<!--[\p{Zs}\P{Zs}]*?-->"   G "<0><!-- x = a > b - 3 --></0>"
   2460 "<!--[\p{Zs}\P{Zs}]*?-->"     "<COMMENTS>this is a comment</COMMENTS>"
   2461 /<\u002f?(\w+)(\s+\w+=(\w+|"[^"]*"|'[^']*'))*>/   G "<0><TD></0>"
   2462 /<\u002f?(\w+)(\s+\w+=(\w+|"[^"]*"|'[^']*'))*>/   G '<0><TD bgColor="FFFFFF"></0>'
   2463 /<\u002f?(\w+)(\s+\w+=(\w+|"[^"]*"|'[^']*'))*>/   G "<0></TD></0>"
   2464 /<\u002f?(\w+)(\s+\w+=(\w+|"[^"]*"|'[^']*'))*>/     "No Tag Here ..."
   2465 "(\{\\f\d*)\\([^;]+;)"   G "<0>{\\f0\\Some Font names here;</0>"
   2466 "(\{\\f\d*)\\([^;]+;)"   G "<0>{\\f1\\fswiss\\fcharset0\\fprq2{\\*\\panose 020b0604020202020204}Arial;</0>"
   2467 "(\{\\f\d*)\\([^;]+;)"   G "{\\f"
   2468 "(\{\\f\d*)\\([^;]+;)"     "{f0fs20 some text}"
   2469 #"</?([a-zA-Z][-A-Za-z\d\.]{0,71})(\s+(\S+)(\s*=\s*([-\w\.]{1,1024}|"[^"]{0,1024}"|'[^']{0,1024}'))?)*\s*>"   G '<0><IMG src='stars.gif' alt="space" height=1></0>'    # TODO:  Can't quote this pattern with the test syntax!
   2470 #"</?([a-zA-Z][-A-Za-z\d\.]{0,71})(\s+(\S+)(\s*=\s*([-\w\.]{1,1024}|"[^"]{0,1024}"|'[^']{0,1024}'))?)*\s*>"     "this is not a tag"
   2471 "^([0]\d|[1][0-2])\/([0-2]\d|[3][0-1])\/([2][01]|[1][6-9])\d{2}(\s([0-1]\d|[2][0-3])(\:[0-5]\d){1,2})?$"   G "<0>12/30/2002</0>"
   2472 "^([0]\d|[1][0-2])\/([0-2]\d|[3][0-1])\/([2][01]|[1][6-9])\d{2}(\s([0-1]\d|[2][0-3])(\:[0-5]\d){1,2})?$"   G "<0>01/12/1998 13:30</0>"
   2473 "^([0]\d|[1][0-2])\/([0-2]\d|[3][0-1])\/([2][01]|[1][6-9])\d{2}(\s([0-1]\d|[2][0-3])(\:[0-5]\d){1,2})?$"   G "<0>01/28/2002 22:35:00</0>"
   2474 "^([0]\d|[1][0-2])\/([0-2]\d|[3][0-1])\/([2][01]|[1][6-9])\d{2}(\s([0-1]\d|[2][0-3])(\:[0-5]\d){1,2})?$"     "13/30/2002"
   2475 "^([0]\d|[1][0-2])\/([0-2]\d|[3][0-1])\/([2][01]|[1][6-9])\d{2}(\s([0-1]\d|[2][0-3])(\:[0-5]\d){1,2})?$"     "01/12/1998 24:30"
   2476 "^([0]\d|[1][0-2])\/([0-2]\d|[3][0-1])\/([2][01]|[1][6-9])\d{2}(\s([0-1]\d|[2][0-3])(\:[0-5]\d){1,2})?$"     "01/28/2002 22:35:64"
   2477 #"((?<strElement>(^[A-Z0-9-;=]*:))(?<strValue>(.*)))"   G "<0>BEGIN:</0>"            #named capture
   2478 #"((?<strElement>(^[A-Z0-9-;=]*:))(?<strValue>(.*)))"   G "<0>TEL;WORK;VOICE:</0>"   #named capture
   2479 #"((?<strElement>(^[A-Z0-9-;=]*:))(?<strValue>(.*)))"   G "<0>TEL:</0>"              #named capture
   2480 #"((?<strElement>(^[A-Z0-9-;=]*:))(?<strValue>(.*)))"     "begin:"                   #named capture
   2481 #"((?<strElement>(^[A-Z0-9-;=]*:))(?<strValue>(.*)))"     "TEL;PREF;"                #named capture
   2482 '^<a\s+href\s*=\s*"http:\/\/([^"]*)"([^>]*)>(.*?(?=<\/a>))<\/a>$'   G '<0><a href="http://www.mysite.com">my external link</a></0>'
   2483 '^<a\s+href\s*=\s*"http:\/\/([^"]*)"([^>]*)>(.*?(?=<\/a>))<\/a>$'   G '<a href="http:/'
   2484 '^<a\s+href\s*=\s*"http:\/\/([^"]*)"([^>]*)>(.*?(?=<\/a>))<\/a>$'     '<a href="myinternalpage.html">my internal link</a>'
   2485 "^([0]\d|[1][0-2])\/([0-2]\d|[3][0-1])\/([2][01]|[1][6-9])\d{2}(\s([0]\d|[1][0-2])(\:[0-5]\d){1,2})*\s*([aApP][mM]{0,2})?$"   G "<0>12/31/2002</0>"
   2486 "^([0]\d|[1][0-2])\/([0-2]\d|[3][0-1])\/([2][01]|[1][6-9])\d{2}(\s([0]\d|[1][0-2])(\:[0-5]\d){1,2})*\s*([aApP][mM]{0,2})?$"   G "<0>12/31/2002 08:00</0>"
   2487 "^([0]\d|[1][0-2])\/([0-2]\d|[3][0-1])\/([2][01]|[1][6-9])\d{2}(\s([0]\d|[1][0-2])(\:[0-5]\d){1,2})*\s*([aApP][mM]{0,2})?$"   G "<0>12/31/2002 08:00 AM</0>"
   2488 "^([0]\d|[1][0-2])\/([0-2]\d|[3][0-1])\/([2][01]|[1][6-9])\d{2}(\s([0]\d|[1][0-2])(\:[0-5]\d){1,2})*\s*([aApP][mM]{0,2})?$"     "12/31/02"
   2489 "^([0]\d|[1][0-2])\/([0-2]\d|[3][0-1])\/([2][01]|[1][6-9])\d{2}(\s([0]\d|[1][0-2])(\:[0-5]\d){1,2})*\s*([aApP][mM]{0,2})?$"     "12/31/2002 14:00"
   2490 "<blockquote>(?:\s*([^<]+)<br>\s*)+</blockquote>"   G "<0><blockquote>string1<br>string2<br>string3<br></blockquote></0>"
   2491 "<blockquote>(?:\s*([^<]+)<br>\s*)+</blockquote>"     ".."
   2492 "^((0?[13578]|10|12)(-|\/)((0[0-9])|([12])([0-9]?)|(3[01]?))(-|\/)((19)([2-9])(\d{1})|(20)([01])(\d{1})|([8901])(\d{1}))|(0?[2469]|11)(-|\/)((0[0-9])|([12])([0-9]?)|(3[0]?))(-|\/)((19)([2-9])(\d{1})|(20)([01])(\d{1})|([8901])(\d{1})))$"   G "<0>1/2/03</0>"
   2493 "^((0?[13578]|10|12)(-|\/)((0[0-9])|([12])([0-9]?)|(3[01]?))(-|\/)((19)([2-9])(\d{1})|(20)([01])(\d{1})|([8901])(\d{1}))|(0?[2469]|11)(-|\/)((0[0-9])|([12])([0-9]?)|(3[0]?))(-|\/)((19)([2-9])(\d{1})|(20)([01])(\d{1})|([8901])(\d{1})))$"   G "<0>2/30/1999</0>"
   2494 "^((0?[13578]|10|12)(-|\/)((0[0-9])|([12])([0-9]?)|(3[01]?))(-|\/)((19)([2-9])(\d{1})|(20)([01])(\d{1})|([8901])(\d{1}))|(0?[2469]|11)(-|\/)((0[0-9])|([12])([0-9]?)|(3[0]?))(-|\/)((19)([2-9])(\d{1})|(20)([01])(\d{1})|([8901])(\d{1})))$"   G "<0>03/04/19</0>"
   2495 "^((0?[13578]|10|12)(-|\/)((0[0-9])|([12])([0-9]?)|(3[01]?))(-|\/)((19)([2-9])(\d{1})|(20)([01])(\d{1})|([8901])(\d{1}))|(0?[2469]|11)(-|\/)((0[0-9])|([12])([0-9]?)|(3[0]?))(-|\/)((19)([2-9])(\d{1})|(20)([01])(\d{1})|([8901])(\d{1})))$"     "3/4/2020"
   2496 "^((0?[13578]|10|12)(-|\/)((0[0-9])|([12])([0-9]?)|(3[01]?))(-|\/)((19)([2-9])(\d{1})|(20)([01])(\d{1})|([8901])(\d{1}))|(0?[2469]|11)(-|\/)((0[0-9])|([12])([0-9]?)|(3[0]?))(-|\/)((19)([2-9])(\d{1})|(20)([01])(\d{1})|([8901])(\d{1})))$"     "3/4/1919"
   2497 '</?(\w+)(\s*\w*\s*=\s*("[^"]*"|\u0027[^\u0027]\u0027|[^>]*))*|/?>'   G '<0><font color="blue"></0>'
   2498 '</?(\w+)(\s*\w*\s*=\s*("[^"]*"|\u0027[^\u0027]\u0027|[^>]*))*|/?>'   G "<0></font></0>"
   2499 '</?(\w+)(\s*\w*\s*=\s*("[^"]*"|\u0027[^\u0027]\u0027|[^>]*))*|/?>'   G "<0><br /></0>"
   2500 '</?(\w+)(\s*\w*\s*=\s*("[^"]*"|\u0027[^\u0027]\u0027|[^>]*))*|/?>'     "this is a test..."
   2501 "^ *(1[0-2]|[1-9]):[0-5][0-9] *(a|p|A|P)(m|M) *$"   G "<0>12:00am</0>"
   2502 "^ *(1[0-2]|[1-9]):[0-5][0-9] *(a|p|A|P)(m|M) *$"   G "<0>1:00 PM</0>"
   2503 "^ *(1[0-2]|[1-9]):[0-5][0-9] *(a|p|A|P)(m|M) *$"   G "<0>  12:59   pm</0>"
   2504 "^ *(1[0-2]|[1-9]):[0-5][0-9] *(a|p|A|P)(m|M) *$"     "0:00"
   2505 "^ *(1[0-2]|[1-9]):[0-5][0-9] *(a|p|A|P)(m|M) *$"     "0:01 am"
   2506 "^ *(1[0-2]|[1-9]):[0-5][0-9] *(a|p|A|P)(m|M) *$"     "13:00 pm"
   2507 "\({1}[0-9]{3}\){1}\-{1}[0-9]{3}\-{1}[0-9]{4}"   G "<0>(111)-111-1111</0>"
   2508 "\({1}[0-9]{3}\){1}\-{1}[0-9]{3}\-{1}[0-9]{4}"     "11111111111"
   2509 "[^abc]"   G "<0>def</0>"
   2510 "[^abc]"     "abc"
   2511 "^(([0]?[1-9]|[1][0-2])[\/|\-|\.]([0-2]\d|[3][0-1]|[1-9])[\/|\-|\.]([2][0])?\d{2}\s+((([0][0-9]|[1][0-2]|[0-9])[\:|\-|\.]([0-5]\d)\s*([aApP][mM])?)|(([0-1][0-9]|[2][0-3]|[0-9])[\:|\-|\.]([0-5]\d))))$"   G "<0>01/01/2002 04:42</0>"
   2512 "^(([0]?[1-9]|[1][0-2])[\/|\-|\.]([0-2]\d|[3][0-1]|[1-9])[\/|\-|\.]([2][0])?\d{2}\s+((([0][0-9]|[1][0-2]|[0-9])[\:|\-|\.]([0-5]\d)\s*([aApP][mM])?)|(([0-1][0-9]|[2][0-3]|[0-9])[\:|\-|\.]([0-5]\d))))$"   G "<0>5-12-02 04:42 AM</0>"
   2513 "^(([0]?[1-9]|[1][0-2])[\/|\-|\.]([0-2]\d|[3][0-1]|[1-9])[\/|\-|\.]([2][0])?\d{2}\s+((([0][0-9]|[1][0-2]|[0-9])[\:|\-|\.]([0-5]\d)\s*([aApP][mM])?)|(([0-1][0-9]|[2][0-3]|[0-9])[\:|\-|\.]([0-5]\d))))$"   G "<0>01.01/02    04-42aM</0>"
   2514 "^(([0]?[1-9]|[1][0-2])[\/|\-|\.]([0-2]\d|[3][0-1]|[1-9])[\/|\-|\.]([2][0])?\d{2}\s+((([0][0-9]|[1][0-2]|[0-9])[\:|\-|\.]([0-5]\d)\s*([aApP][mM])?)|(([0-1][0-9]|[2][0-3]|[0-9])[\:|\-|\.]([0-5]\d))))$"     "01-12-1999 4:50PM"
   2515 "^(([0]?[1-9]|[1][0-2])[\/|\-|\.]([0-2]\d|[3][0-1]|[1-9])[\/|\-|\.]([2][0])?\d{2}\s+((([0][0-9]|[1][0-2]|[0-9])[\:|\-|\.]([0-5]\d)\s*([aApP][mM])?)|(([0-1][0-9]|[2][0-3]|[0-9])[\:|\-|\.]([0-5]\d))))$"     "01-12-2002 15:10PM"
   2516 "^(([0]?[1-9]|[1][0-2])[\/|\-|\.]([0-2]\d|[3][0-1]|[1-9])[\/|\-|\.]([2][0])?\d{2}\s+((([0][0-9]|[1][0-2]|[0-9])[\:|\-|\.]([0-5]\d)\s*([aApP][mM])?)|(([0-1][0-9]|[2][0-3]|[0-9])[\:|\-|\.]([0-5]\d))))$"     "01-12-002 8:20PM"
   2517 "^([1][12]|[0]?[1-9])[\/-]([3][01]|[12]\d|[0]?[1-9])[\/-](\d{4}|\d{2})$"   G "<0>11-02-02</0>"
   2518 "^([1][12]|[0]?[1-9])[\/-]([3][01]|[12]\d|[0]?[1-9])[\/-](\d{4}|\d{2})$"   G "<0>1-25-2002</0>"
   2519 "^([1][12]|[0]?[1-9])[\/-]([3][01]|[12]\d|[0]?[1-9])[\/-](\d{4}|\d{2})$"   G "<0>01/25/2002</0>"
   2520 "^([1][12]|[0]?[1-9])[\/-]([3][01]|[12]\d|[0]?[1-9])[\/-](\d{4}|\d{2})$"     "13-02-02"
   2521 "^([1][12]|[0]?[1-9])[\/-]([3][01]|[12]\d|[0]?[1-9])[\/-](\d{4}|\d{2})$"     "11.02.02"
   2522 "^([1][12]|[0]?[1-9])[\/-]([3][01]|[12]\d|[0]?[1-9])[\/-](\d{4}|\d{2})$"     "11/32/2002"
   2523 "(([0-1][0-9])|([2][0-3])):([0-5][0-9]):([0-5][0-9])"   G "<0>09:30:00</0>"
   2524 "(([0-1][0-9])|([2][0-3])):([0-5][0-9]):([0-5][0-9])"   G "<0>17:45:20</0>"
   2525 "(([0-1][0-9])|([2][0-3])):([0-5][0-9]):([0-5][0-9])"   G "<0>23:59:59</0>"
   2526 "(([0-1][0-9])|([2][0-3])):([0-5][0-9]):([0-5][0-9])"     "24:00:00"
   2527 "(((0[1-9]|[12][0-9]|3[01])([-./])(0[13578]|10|12)([-./])(\d{4}))|(([0][1-9]|[12][0-9]|30)([-./])(0[469]|11)([-./])(\d{4}))|((0[1-9]|1[0-9]|2[0-8])([-./])(02)([-./])(\d{4}))|((29)(\.|-|\/)(02)([-./])([02468][048]00))|((29)([-./])(02)([-./])([13579][26]00))|((29)([-./])(02)([-./])([0-9][0-9][0][48]))|((29)([-./])(02)([-./])([0-9][0-9][2468][048]))|((29)([-./])(02)([-./])([0-9][0-9][13579][26])))"   G "<0>29/02/2000</0>"
   2528 "(((0[1-9]|[12][0-9]|3[01])([-./])(0[13578]|10|12)([-./])(\d{4}))|(([0][1-9]|[12][0-9]|30)([-./])(0[469]|11)([-./])(\d{4}))|((0[1-9]|1[0-9]|2[0-8])([-./])(02)([-./])(\d{4}))|((29)(\.|-|\/)(02)([-./])([02468][048]00))|((29)([-./])(02)([-./])([13579][26]00))|((29)([-./])(02)([-./])([0-9][0-9][0][48]))|((29)([-./])(02)([-./])([0-9][0-9][2468][048]))|((29)([-./])(02)([-./])([0-9][0-9][13579][26])))"   G "<0>31/01/2000</0>"
   2529 "(((0[1-9]|[12][0-9]|3[01])([-./])(0[13578]|10|12)([-./])(\d{4}))|(([0][1-9]|[12][0-9]|30)([-./])(0[469]|11)([-./])(\d{4}))|((0[1-9]|1[0-9]|2[0-8])([-./])(02)([-./])(\d{4}))|((29)(\.|-|\/)(02)([-./])([02468][048]00))|((29)([-./])(02)([-./])([13579][26]00))|((29)([-./])(02)([-./])([0-9][0-9][0][48]))|((29)([-./])(02)([-./])([0-9][0-9][2468][048]))|((29)([-./])(02)([-./])([0-9][0-9][13579][26])))"   G "<0>30-01-2000</0>"
   2530 "(((0[1-9]|[12][0-9]|3[01])([-./])(0[13578]|10|12)([-./])(\d{4}))|(([0][1-9]|[12][0-9]|30)([-./])(0[469]|11)([-./])(\d{4}))|((0[1-9]|1[0-9]|2[0-8])([-./])(02)([-./])(\d{4}))|((29)(\.|-|\/)(02)([-./])([02468][048]00))|((29)([-./])(02)([-./])([13579][26]00))|((29)([-./])(02)([-./])([0-9][0-9][0][48]))|((29)([-./])(02)([-./])([0-9][0-9][2468][048]))|((29)([-./])(02)([-./])([0-9][0-9][13579][26])))"     "29/02/2002"
   2531 "(((0[1-9]|[12][0-9]|3[01])([-./])(0[13578]|10|12)([-./])(\d{4}))|(([0][1-9]|[12][0-9]|30)([-./])(0[469]|11)([-./])(\d{4}))|((0[1-9]|1[0-9]|2[0-8])([-./])(02)([-./])(\d{4}))|((29)(\.|-|\/)(02)([-./])([02468][048]00))|((29)([-./])(02)([-./])([13579][26]00))|((29)([-./])(02)([-./])([0-9][0-9][0][48]))|((29)([-./])(02)([-./])([0-9][0-9][2468][048]))|((29)([-./])(02)([-./])([0-9][0-9][13579][26])))"     "32/01/2002"
   2532 "(((0[1-9]|[12][0-9]|3[01])([-./])(0[13578]|10|12)([-./])(\d{4}))|(([0][1-9]|[12][0-9]|30)([-./])(0[469]|11)([-./])(\d{4}))|((0[1-9]|1[0-9]|2[0-8])([-./])(02)([-./])(\d{4}))|((29)(\.|-|\/)(02)([-./])([02468][048]00))|((29)([-./])(02)([-./])([13579][26]00))|((29)([-./])(02)([-./])([0-9][0-9][0][48]))|((29)([-./])(02)([-./])([0-9][0-9][2468][048]))|((29)([-./])(02)([-./])([0-9][0-9][13579][26])))"     "10/2/2002"
   2533 "^0[1-6]{1}(([0-9]{2}){4})|((\s[0-9]{2}){4})|((-[0-9]{2}){4})$"   G "<0>01 46 70 89 12</0>"
   2534 "^0[1-6]{1}(([0-9]{2}){4})|((\s[0-9]{2}){4})|((-[0-9]{2}){4})$"   G "<0>01-46-70-89-12</0>"
   2535 "^0[1-6]{1}(([0-9]{2}){4})|((\s[0-9]{2}){4})|((-[0-9]{2}){4})$"   G "<0>0146708912</0>"
   2536 "^0[1-6]{1}(([0-9]{2}){4})|((\s[0-9]{2}){4})|((-[0-9]{2}){4})$"     "01-46708912"
   2537 "^0[1-6]{1}(([0-9]{2}){4})|((\s[0-9]{2}){4})|((-[0-9]{2}){4})$"     "01 46708912"
   2538 "^0[1-6]{1}(([0-9]{2}){4})|((\s[0-9]{2}){4})|((-[0-9]{2}){4})$"     "+33235256677"
   2539 "^[0-9A-Za-z_ ]+(.[jJ][pP][gG]|.[gG][iI][fF])$"   G "<0>good.gif</0>"
   2540 "^[0-9A-Za-z_ ]+(.[jJ][pP][gG]|.[gG][iI][fF])$"   G "<0>go d.GIf</0>"
   2541 "^[0-9A-Za-z_ ]+(.[jJ][pP][gG]|.[gG][iI][fF])$"   G "<0>goo_d.jPg</0>"
   2542 "^[0-9A-Za-z_ ]+(.[jJ][pP][gG]|.[gG][iI][fF])$"     "junk"
   2543 "^[0-9A-Za-z_ ]+(.[jJ][pP][gG]|.[gG][iI][fF])$"     "bad.bad.gif"
   2544 "^[0-9A-Za-z_ ]+(.[jJ][pP][gG]|.[gG][iI][fF])$"     "slash\gif."
   2545 "<[^>\s]*\bauthor\b[^>]*>"   G '<0><author name="Daniel"></0>'
   2546 "<[^>\s]*\bauthor\b[^>]*>"   G "<0></sch:author></0>"
   2547 # "<[^>\s]*\bauthor\b[^>]*>"   G '<0><pp:author name="Daniel"</0>'  #Debug  should work
   2548 "<[^> ]*\bauthor\b[^>]*>"   G "<0></sch:author></0>"
   2549 "<[^> ]*\bauthor\b[^>]*>"   G '<0><pp:author name="Daniel"></0>'
   2550 "<[^>\s]*\bauthor\b[^>]*>"     "<other>"
   2551 "<[^>\s]*\bauthor\b[^>]*>"     "</authors>"
   2552 "<[^>\s]*\bauthor\b[^>]*>"     "<work>author</work>"
   2553 "^(?:(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/|-|\.)(?:0?2\1(?:29))$)|(?:(?:1[6-9]|[2-9]\d)?\d{2})(\/|-|\.)(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8]))$"   G "<0>04/2/29</0>"
   2554 "^(?:(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/|-|\.)(?:0?2\1(?:29))$)|(?:(?:1[6-9]|[2-9]\d)?\d{2})(\/|-|\.)(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8]))$"   G "<0>2002-4-30</0>"
   2555 "^(?:(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/|-|\.)(?:0?2\1(?:29))$)|(?:(?:1[6-9]|[2-9]\d)?\d{2})(\/|-|\.)(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8]))$"   G "<0>02.10.31</0>"
   2556 "^(?:(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/|-|\.)(?:0?2\1(?:29))$)|(?:(?:1[6-9]|[2-9]\d)?\d{2})(\/|-|\.)(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8]))$"     "2003/2/29"
   2557 "^(?:(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/|-|\.)(?:0?2\1(?:29))$)|(?:(?:1[6-9]|[2-9]\d)?\d{2})(\/|-|\.)(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8]))$"     "02.4.31"
   2558 "^(?:(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/|-|\.)(?:0?2\1(?:29))$)|(?:(?:1[6-9]|[2-9]\d)?\d{2})(\/|-|\.)(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8]))$"     "00/00/00"
   2559 '(\d*)\u0027*-*(\d*)/*(\d*)"'   G '<0>5\u0027-3/16"</0>'
   2560 '(\d*)\u0027*-*(\d*)/*(\d*)"'   G '<0>1\u0027-2"</0>'
   2561 '(\d*)\u0027*-*(\d*)/*(\d*)"'   G '<0>5/16"</0>'
   2562 '(\d*)\u0027*-*(\d*)/*(\d*)"'     '1 3/16'
   2563 "^[1-9]{1}$|^[1-4]{1}[0-9]{1}$|^50$"   G "<0>1</0>"
   2564 "^[1-9]{1}$|^[1-4]{1}[0-9]{1}$|^50$"   G "<0>23</0>"
   2565 "^[1-9]{1}$|^[1-4]{1}[0-9]{1}$|^50$"   G "<0>50</0>"
   2566 "^[1-9]{1}$|^[1-4]{1}[0-9]{1}$|^50$"     "0"
   2567 "^[1-9]{1}$|^[1-4]{1}[0-9]{1}$|^50$"     "111"
   2568 "^[1-9]{1}$|^[1-4]{1}[0-9]{1}$|^50$"     "xyz"
   2569 "^([ \u00c0-\u01ffa-zA-Z'])+$"   G "<0>Jon Doe</0>"
   2570 "^([ \u00c0-\u01ffa-zA-Z'])+$"   G "<0>J\u00f8rn</0>"
   2571 "^([ \u00c0-\u01ffa-zA-Z'])+$"   G "<0>Mc'Neelan</0>"
   2572 "^([ \u00c0-\u01ffa-zA-Z'])+$"     "Henry); hacking attempt"
   2573 "^((([0]?[1-9]|1[0-2])(:|\.)(00|15|30|45)?( )?(AM|am|aM|Am|PM|pm|pM|Pm))|(([0]?[0-9]|1[0-9]|2[0-3])(:|\.)(00|15|30|45)?))$"   G "<0>1:00 PM</0>"
   2574 "^((([0]?[1-9]|1[0-2])(:|\.)(00|15|30|45)?( )?(AM|am|aM|Am|PM|pm|pM|Pm))|(([0]?[0-9]|1[0-9]|2[0-3])(:|\.)(00|15|30|45)?))$"   G "<0>6:45 am</0>"
   2575 "^((([0]?[1-9]|1[0-2])(:|\.)(00|15|30|45)?( )?(AM|am|aM|Am|PM|pm|pM|Pm))|(([0]?[0-9]|1[0-9]|2[0-3])(:|\.)(00|15|30|45)?))$"   G "<0>17:30</0>"
   2576 "^((([0]?[1-9]|1[0-2])(:|\.)(00|15|30|45)?( )?(AM|am|aM|Am|PM|pm|pM|Pm))|(([0]?[0-9]|1[0-9]|2[0-3])(:|\.)(00|15|30|45)?))$"     "4:32 am"
   2577 "^((([0]?[1-9]|1[0-2])(:|\.)(00|15|30|45)?( )?(AM|am|aM|Am|PM|pm|pM|Pm))|(([0]?[0-9]|1[0-9]|2[0-3])(:|\.)(00|15|30|45)?))$"     "5:30:00 am"
   2578 "^((([0]?[1-9]|1[0-2])(:|\.)(00|15|30|45)?( )?(AM|am|aM|Am|PM|pm|pM|Pm))|(([0]?[0-9]|1[0-9]|2[0-3])(:|\.)(00|15|30|45)?))$"     "17:01"
   2579 "(^\d*\.?\d*[1-9]+\d*$)|(^[1-9]+\d*\.\d*$)"   G "<0>0.050</0>"
   2580 "(^\d*\.?\d*[1-9]+\d*$)|(^[1-9]+\d*\.\d*$)"   G "<0>5.0000</0>"
   2581 "(^\d*\.?\d*[1-9]+\d*$)|(^[1-9]+\d*\.\d*$)"   G "<0>5000</0>"
   2582 "(^\d*\.?\d*[1-9]+\d*$)|(^[1-9]+\d*\.\d*$)"     "0"
   2583 "(^\d*\.?\d*[1-9]+\d*$)|(^[1-9]+\d*\.\d*$)"     "0.0"
   2584 "(^\d*\.?\d*[1-9]+\d*$)|(^[1-9]+\d*\.\d*$)"     ".0"
   2585 "^([A-Z]{1}[a-z]{1,})$|^([A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,})$|^([A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,})$|^$"   G "<0>Sacramento</0>"
   2586 "^([A-Z]{1}[a-z]{1,})$|^([A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,})$|^([A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,})$|^$"     "<0><2>San Francisco</2></0>"
   2587 "^([A-Z]{1}[a-z]{1,})$|^([A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,})$|^([A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,})$|^$"     "<0><3>San Luis Obispo</3></0>"
   2588 "^([A-Z]{1}[a-z]{1,})$|^([A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,})$|^([A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,})$|^$"     "SanFrancisco"
   2589 "^([A-Z]{1}[a-z]{1,})$|^([A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,})$|^([A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,})$|^$"     "SanLuisObispo"
   2590 "^([A-Z]{1}[a-z]{1,})$|^([A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,})$|^([A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,})$|^$"     "San francisco"
   2591 "^\{?[a-fA-F\d]{8}-([a-fA-F\d]{4}-){3}[a-fA-F\d]{12}\}?$"   G "<0>{e02ff0e4-00ad-090A-c030-0d00a0008ba0}</0>"
   2592 "^\{?[a-fA-F\d]{8}-([a-fA-F\d]{4}-){3}[a-fA-F\d]{12}\}?$"   G "<0>e02ff0e4-00ad-090A-c030-0d00a0008ba0</0>"
   2593 "^\{?[a-fA-F\d]{8}-([a-fA-F\d]{4}-){3}[a-fA-F\d]{12}\}?$"     "0xe02ff0e400ad090Ac0300d00a0008ba0"
   2594 "^\{?[a-fA-F0-9]{8}-([a-fA-F0-9]{4}-){3}[a-fA-F0-9]{12}\}?$"   G "<0>{e02ff0e4-00ad-090A-c030-0d00a0008ba0}</0>"
   2595 "^\{?[a-fA-F0-9]{8}-([a-fA-F0-9]{4}-){3}[a-fA-F0-9]{12}\}?$"   G "<0>e02ff0e4-00ad-090A-c030-0d00a0008ba0</0>"
   2596 "^\{?[a-fA-F0-9]{8}-([a-fA-F0-9]{4}-){3}[a-fA-F0-9]{12}\}?$"     "0xe02ff0e400ad090Ac0300d00a0008ba0"
   2597 "^([a-zA-Z0-9@*#]{8,15})$"   G "<0>@12X*567</0>"
   2598 "^([a-zA-Z0-9@*#]{8,15})$"   G "<0>1#Zv96g@*Yfasd4</0>"
   2599 "^([a-zA-Z0-9@*#]{8,15})$"   G "<0>#67jhgt@erd</0>"
   2600 "^([a-zA-Z0-9@*#]{8,15})$"     "$12X*567"
   2601 "^([a-zA-Z0-9@*#]{8,15})$"     "1#Zv_96"
   2602 "^([a-zA-Z0-9@*#]{8,15})$"     "+678jhgt@erd"
   2603 '(("|\u0027)[a-z0-9\/\.\?\=\&]*(\.htm|\.asp|\.php|\.jsp)[a-z0-9\/\.\?\=\&]*("|\u0027))|(href=*?[a-z0-9\/\.\?\=\&"\u0027]*)'   G '<0>href="produktsida.asp?kategori2=218"</0>'
   2604 '(("|\u0027)[a-z0-9\/\.\?\=\&]*(\.htm|\.asp|\.php|\.jsp)[a-z0-9\/\.\?\=\&]*("|\u0027))|(href=*?[a-z0-9\/\.\?\=\&"\u0027]*)'   G '<0>href="NuclearTesting.htm"</0>'
   2605 '(("|\u0027)[a-z0-9\/\.\?\=\&]*(\.htm|\.asp|\.php|\.jsp)[a-z0-9\/\.\?\=\&]*("|\u0027))|(href=*?[a-z0-9\/\.\?\=\&"\u0027]*)'     'U Suck'
   2606 "^(((((0[1-9])|(1\d)|(2[0-8]))-((0[1-9])|(1[0-2])))|((31-((0[13578])|(1[02])))|((29|30)-((0[1,3-9])|(1[0-2])))))-((20[0-9][0-9]))|(29-02-20(([02468][048])|([13579][26]))))$"   G "<0>05-01-2002</0>"
   2607 "^(((((0[1-9])|(1\d)|(2[0-8]))-((0[1-9])|(1[0-2])))|((31-((0[13578])|(1[02])))|((29|30)-((0[1,3-9])|(1[0-2])))))-((20[0-9][0-9]))|(29-02-20(([02468][048])|([13579][26]))))$"   G "<0>29-02-2004</0>"
   2608 "^(((((0[1-9])|(1\d)|(2[0-8]))-((0[1-9])|(1[0-2])))|((31-((0[13578])|(1[02])))|((29|30)-((0[1,3-9])|(1[0-2])))))-((20[0-9][0-9]))|(29-02-20(([02468][048])|([13579][26]))))$"   G "<0>31-12-2002</0>"
   2609 "^(((((0[1-9])|(1\d)|(2[0-8]))-((0[1-9])|(1[0-2])))|((31-((0[13578])|(1[02])))|((29|30)-((0[1,3-9])|(1[0-2])))))-((20[0-9][0-9]))|(29-02-20(([02468][048])|([13579][26]))))$"     "1-1-02"
   2610 "^(((((0[1-9])|(1\d)|(2[0-8]))-((0[1-9])|(1[0-2])))|((31-((0[13578])|(1[02])))|((29|30)-((0[1,3-9])|(1[0-2])))))-((20[0-9][0-9]))|(29-02-20(([02468][048])|([13579][26]))))$"     "29-02-2002"
   2611 "^(((((0[1-9])|(1\d)|(2[0-8]))-((0[1-9])|(1[0-2])))|((31-((0[13578])|(1[02])))|((29|30)-((0[1,3-9])|(1[0-2])))))-((20[0-9][0-9]))|(29-02-20(([02468][048])|([13579][26]))))$"     "31-11-2002"
   2612 "^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$"   G "<0>123456.123456</0>"
   2613 "^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$"   G "<0>123456,123456</0>"
   2614 "^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$"   G "<0>123456</0>"
   2615 "^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$"     "123a.123"
   2616 "^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$"     "123a,123"
   2617 "^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$"     "a"
   2618 "^(ac|AC|al|AL|am|AM|ap|AP|ba|BA|ce|CE|df|DF|es|ES|go|GO|ma|MA|mg|MG|ms|MS|mt|MT|pa|PA|pb|PB|pe|PE|pi|PI|pr|PR|rj|RJ|rn|RN|ro|RO|rr|RR|rs|RS|sc|SC|se|SE|sp|SP|to|TO)$"   G "<0>AC</0>"
   2619 "^(ac|AC|al|AL|am|AM|ap|AP|ba|BA|ce|CE|df|DF|es|ES|go|GO|ma|MA|mg|MG|ms|MS|mt|MT|pa|PA|pb|PB|pe|PE|pi|PI|pr|PR|rj|RJ|rn|RN|ro|RO|rr|RR|rs|RS|sc|SC|se|SE|sp|SP|to|TO)$"   G "<0>RJ</0>"
   2620 "^(ac|AC|al|AL|am|AM|ap|AP|ba|BA|ce|CE|df|DF|es|ES|go|GO|ma|MA|mg|MG|ms|MS|mt|MT|pa|PA|pb|PB|pe|PE|pi|PI|pr|PR|rj|RJ|rn|RN|ro|RO|rr|RR|rs|RS|sc|SC|se|SE|sp|SP|to|TO)$"   G "<0>SP</0>"
   2621 "^(ac|AC|al|AL|am|AM|ap|AP|ba|BA|ce|CE|df|DF|es|ES|go|GO|ma|MA|mg|MG|ms|MS|mt|MT|pa|PA|pb|PB|pe|PE|pi|PI|pr|PR|rj|RJ|rn|RN|ro|RO|rr|RR|rs|RS|sc|SC|se|SE|sp|SP|to|TO)$"     "XX"
   2622 "^(ac|AC|al|AL|am|AM|ap|AP|ba|BA|ce|CE|df|DF|es|ES|go|GO|ma|MA|mg|MG|ms|MS|mt|MT|pa|PA|pb|PB|pe|PE|pi|PI|pr|PR|rj|RJ|rn|RN|ro|RO|rr|RR|rs|RS|sc|SC|se|SE|sp|SP|to|TO)$"     "AB"
   2623 "^(ac|AC|al|AL|am|AM|ap|AP|ba|BA|ce|CE|df|DF|es|ES|go|GO|ma|MA|mg|MG|ms|MS|mt|MT|pa|PA|pb|PB|pe|PE|pi|PI|pr|PR|rj|RJ|rn|RN|ro|RO|rr|RR|rs|RS|sc|SC|se|SE|sp|SP|to|TO)$"     "HJ"
   2624 "^[+]?\d*$"   G "<0>0123456789</0>"
   2625 "^[+]?\d*$"   G "<0>1234</0>"
   2626 "^[+]?\d*$"   G "<0>1</0>"
   2627 "^[+]?\d*$"     "1.0?&"
   2628 "^[+]?\d*$"     "a1"
   2629 "^[+]?\d*$"     "2a-"
   2630 #/<[aA][ ]{0,}([a-zA-Z0-9"'_,.:;!?@$\&()%=\u002f ]|[\-]|[    \f]){0,}>((<(([a-zA-Z0-9"'_,.:;!?@$\&()%=\u002f ]|[\-]|[    \f]){0,})>([a-zA-Z0-9"'_,.:;!?@$\&()%=\u002f ]|[\-]|[  \f]){0,})|(([a-zA-Z0-9"'_,.:;!?@$\&()%=\u002f ]|[\-]|[	\f]){0,})){1,}/    G "<0><a href='javascript:functionA();'><i>this text is italicized</i></a></0>"  #TODO:  Need infinite loop breaking
   2631 #/<[aA][ ]{0,}([a-zA-Z0-9"'_,.:;!?@$\&()%=\u002f ]|[\-]|[    \f]){0,}>((<(([a-zA-Z0-9"'_,.:;!?@$\&()%=\u002f ]|[\-]|[    \f]){0,})>([a-zA-Z0-9"'_,.:;!?@$\&()%=\u002f ]|[\-]|[  \f]){0,})|(([a-zA-Z0-9"'_,.:;!?@$\&()%=\u002f ]|[\-]|[	\f]){0,})){1,}/     "<A href='#'><P</A></P>"    #TODO:  need infinite loop breaking.
   2632 "^([0-1]?[0-9]|[2][0-3]):([0-5][0-9])$"   G "<0>0:00</0>"
   2633 "^([0-1]?[0-9]|[2][0-3]):([0-5][0-9])$"   G "<0>23:00</0>"
   2634 "^([0-1]?[0-9]|[2][0-3]):([0-5][0-9])$"   G "<0>00:59</0>"
   2635 "^([0-1]?[0-9]|[2][0-3]):([0-5][0-9])$"     "0:0"
   2636 "^([0-1]?[0-9]|[2][0-3]):([0-5][0-9])$"     "24:00"
   2637 "^([0-1]?[0-9]|[2][0-3]):([0-5][0-9])$"     "00:60"
   2638 "^((0[1-9])|(1[0-2]))\/(\d{2})$"   G "<0>11/03</0>"
   2639 "^((0[1-9])|(1[0-2]))\/(\d{2})$"   G "<0>01/04</0>"
   2640 "^((0[1-9])|(1[0-2]))\/(\d{2})$"     "13/03"
   2641 "^((0[1-9])|(1[0-2]))\/(\d{2})$"     "10/2003"
   2642 "<script[^>]*>[\w|\t|\r|\W]*</script>"   G '<0><script language=javascript>document.write("one");</script></0>'
   2643 "<script[^>]*>[\w|\t|\r|\W]*</script>"     "--"
   2644 "<script[^>]*>[\w|\t|\r|\W]*</script>"     "A-Z][a-z]+"
   2645 #"<script[^>]*>[\w|\t|\r|\W]*</script>"   G "<0>strFirstName</0>"   # Test Case damaged?
   2646 #"<script[^>]*>[\w|\t|\r|\W]*</script>"   G "<0>intAgeInYears</0>"   # Test Case damaged?
   2647 #"<script[^>]*>[\w|\t|\r|\W]*</script>"   G "<0>Where the Wild Things Are</0>"   #  Test Case damaged?
   2648 "<script[^>]*>[\w|\t|\r|\W]*</script>"     "123"
   2649 "<script[^>]*>[\w|\t|\r|\W]*</script>"     "abc"
   2650 "<script[^>]*>[\w|\t|\r|\W]*</script>"     "this has no caps in it"
   2651 "(^-\d*\.?\d*[1-9]+\d*$)|(^-[1-9]+\d*\.\d*$)"   G "<0>-0.050</0>"
   2652 "(^-\d*\.?\d*[1-9]+\d*$)|(^-[1-9]+\d*\.\d*$)"   G "<0>-5.000</0>"
   2653 "(^-\d*\.?\d*[1-9]+\d*$)|(^-[1-9]+\d*\.\d*$)"   G "<0>-5</0>"
   2654 "(^-\d*\.?\d*[1-9]+\d*$)|(^-[1-9]+\d*\.\d*$)"     "0"
   2655 "(^-\d*\.?\d*[1-9]+\d*$)|(^-[1-9]+\d*\.\d*$)"     "0.0"
   2656 "(^-\d*\.?\d*[1-9]+\d*$)|(^-[1-9]+\d*\.\d*$)"     ".0"
   2657 "^([2][0]\d{2}\/([0]\d|[1][0-2])\/([0-2]\d|[3][0-1]))$|^([2][0]\d{2}\/([0]\d|[1][0-2])\/([0-2]\d|[3][0-1])\s([0-1]\d|[2][0-3])\:[0-5]\d\:[0-5]\d)$"   G "<0>2002/02/03</0>"
   2658 "^([2][0]\d{2}\/([0]\d|[1][0-2])\/([0-2]\d|[3][0-1]))$|^([2][0]\d{2}\/([0]\d|[1][0-2])\/([0-2]\d|[3][0-1])\s([0-1]\d|[2][0-3])\:[0-5]\d\:[0-5]\d)$"   G "<0>2002/02/03 12:12:18</0>"
   2659 "^([2][0]\d{2}\/([0]\d|[1][0-2])\/([0-2]\d|[3][0-1]))$|^([2][0]\d{2}\/([0]\d|[1][0-2])\/([0-2]\d|[3][0-1])\s([0-1]\d|[2][0-3])\:[0-5]\d\:[0-5]\d)$"     "2002/02/36"
   2660 "^([2][0]\d{2}\/([0]\d|[1][0-2])\/([0-2]\d|[3][0-1]))$|^([2][0]\d{2}\/([0]\d|[1][0-2])\/([0-2]\d|[3][0-1])\s([0-1]\d|[2][0-3])\:[0-5]\d\:[0-5]\d)$"     "02/03/2002"
   2661 "^(\d|,)*\.?\d*$"   G "<0>1,000</0>"
   2662 "^(\d|,)*\.?\d*$"   G "<0>3,000.05</0>"
   2663 "^(\d|,)*\.?\d*$"   G "<0>5,000,000</0>"
   2664 "^(\d|,)*\.?\d*$"     "abc"
   2665 "^(\d|,)*\.?\d*$"     "$100,000"
   2666 "^(\d|,)*\.?\d*$"     "Forty"
   2667 "^\d$"   G "<0>1</0>"
   2668 "^\d$"   G "<0>2</0>"
   2669 "^\d$"   G "<0>3</0>"
   2670 "^\d$"     "a"
   2671 "^\d$"     "324"
   2672 "^\d$"     "num"
   2673 "^[0-9]+$"   G "<0>1234567890</0>"
   2674 "^[0-9]+$"   G "<0>1234567890</0>"
   2675 "^[0-9]+$"   G "<0>1234567890</0>"
   2676 "^[0-9]+$"     "http://none"
   2677 "^[0-9]+$"     "http://none"
   2678 "^[0-9]+$"     "http://none"
   2679 "^.{4,8}$"   G "<0>asdf</0>"
   2680 "^.{4,8}$"   G "<0>1234</0>"
   2681 "^.{4,8}$"   G "<0>asdf1234</0>"
   2682 "^.{4,8}$"     "asd"
   2683 "^.{4,8}$"     "123"
   2684 "^.{4,8}$"     "asdfe12345"
   2685 "^[\w\.=-]+@[\w\.-]+\.[\w]{2,3}$"   G "<0>a@a.com</0>"
   2686 "^[\w\.=-]+@[\w\.-]+\.[\w]{2,3}$"   G "<0>a@a.com.au</0>"
   2687 "^[\w\.=-]+@[\w\.-]+\.[\w]{2,3}$"   G "<0>a@a.au</0>"
   2688 "^[\w\.=-]+@[\w\.-]+\.[\w]{2,3}$"     "word"
   2689 "^[\w\.=-]+@[\w\.-]+\.[\w]{2,3}$"     "word@"
   2690 "^[\w\.=-]+@[\w\.-]+\.[\w]{2,3}$"     "@word"
   2691 "^\d{5}-\d{4}$"   G "<0>22222-3333</0>"
   2692 "^\d{5}-\d{4}$"   G "<0>34545-2367</0>"
   2693 "^\d{5}-\d{4}$"   G "<0>56334-2343</0>"
   2694 "^\d{5}-\d{4}$"     "123456789"
   2695 "^\d{5}-\d{4}$"     "A3B 4C5"
   2696 "^\d{5}-\d{4}$"     "55335"
   2697 "(a|b|c).(a.b)*.b+.c"   G "<0>autbfc</0>"
   2698 "(a|b|c).(a.b)*.b+.c"     "attc"
   2699 '"((\\")|[^"(\\")])+"'   G '<0>"test"</0>'
   2700 '"((\\")|[^"(\\")])+"'   G '<0>"escape\"quote"</0>'
   2701 '"((\\")|[^"(\\")])+"'   G '<0>"\\""</0>'
   2702 '"((\\")|[^"(\\")])+"'     "test"
   2703 '"((\\")|[^"(\\")])+"'     '"test'
   2704 '"((\\")|[^"(\\")])+"'     '""test\\"'
   2705 "((0[1-9])|(1[02]))/\d{2}"   G "<0>01/00</0>"
   2706 "((0[1-9])|(1[02]))/\d{2}"   G "<0>12/99</0>"
   2707 "((0[1-9])|(1[02]))/\d{2}"     "13/00"
   2708 "((0[1-9])|(1[02]))/\d{2}"     "12/AS"
   2709 "^[a-zA-Z]$"   G "<0>a</0>"
   2710 "^[a-zA-Z]$"   G "<0>B</0>"
   2711 "^[a-zA-Z]$"   G "<0>c</0>"
   2712 "^[a-zA-Z]$"     "0"
   2713 "^[a-zA-Z]$"     "&"
   2714 "^[a-zA-Z]$"     "AbC"
   2715 "^[a-zA-Z]+$"   G "<0>abc</0>"
   2716 "^[a-zA-Z]+$"   G "<0>ABC</0>"
   2717 "^[a-zA-Z]+$"   G "<0>aBcDeF</0>"
   2718 "^[a-zA-Z]+$"     "abc123"
   2719 "^[a-zA-Z]+$"     "mr."
   2720 "^[a-zA-Z]+$"     "a word"
   2721 "^\s*[a-zA-Z,\p{Zs}]+\s*$"   G "<0>Smith, Ed</0>"
   2722 "^\s*[a-zA-Z,\p{Zs}]+\s*$"   G "<0>Ed Smith</0>"
   2723 "^\s*[a-zA-Z,\p{Zs}]+\s*$"   G "<0>aBcDeFgH</0>"
   2724 "^\s*[a-zA-Z,\p{Zs}]+\s*$"     "a123"
   2725 "^\s*[a-zA-Z,\p{Zs}]+\s*$"     "AB5"
   2726 "^\s*[a-zA-Z,\p{Zs}]+\s*$"     "Mr. Ed"
   2727 "(\w+?@\w+?\u002E.+)"   G "<0>bob@vsnl.com</0>"
   2728 "(\w+?@\w+?\u002E.+)"     "[AABB]"
   2729 "^\d+$"   G "<0>123</0>"
   2730 "^\d+$"   G "<0>10</0>"
   2731 "^\d+$"   G "<0>54</0>"
   2732 "^\d+$"     "-54"
   2733 "^\d+$"     "54.234"
   2734 "^\d+$"     "abc"
   2735 "^(\+|-)?\d+$"   G "<0>-34</0>"
   2736 "^(\+|-)?\d+$"   G "<0>34</0>"
   2737 "^(\+|-)?\d+$"   G "<0>+5</0>"
   2738 "^(\+|-)?\d+$"     "abc"
   2739 "^(\+|-)?\d+$"     "3.1415"
   2740 "^(\+|-)?\d+$"     "-5.3"
   2741 "foo"   G "<0>foo</0>"
   2742 "foo"     "bar"
   2743 "^[1-5]$"   G "<0>1</0>"
   2744 "^[1-5]$"   G "<0>3</0>"
   2745 "^[1-5]$"   G "<0>4</0>"
   2746 "^[1-5]$"     "6"
   2747 "^[1-5]$"     "23"
   2748 "^[1-5]$"     "a"
   2749 "^[12345]$"   G "<0>1</0>"
   2750 "^[12345]$"   G "<0>2</0>"
   2751 "^[12345]$"   G "<0>4</0>"
   2752 "^[12345]$"     "6"
   2753 "^[12345]$"     "-1"
   2754 "^[12345]$"     "abc"
   2755 "^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$"   G "<0>joe@aol.com</0>"
   2756 "^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$"   G "<0>joe@wrox.co.uk</0>"
   2757 "^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$"   G "<0>joe@domain.info</0>"
   2758 "^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$"     "a@b"
   2759 "^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$"     "notanemail"
   2760 "^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$"     "joe@@."
   2761 "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$"   G "<0>joe@aol.com</0>"
   2762 "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$"   G "<0>ssmith@aspalliance.com</0>"
   2763 "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$"   G "<0>a@b.cc</0>"
   2764 "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$"     "joe@123aspx.com"
   2765 "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$"     "joe@web.info"
   2766 "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$"     "joe@company.co.uk"
   2767 "[\w-]+@([\w-]+\.)+[\w-]+"   G "<0>joe@aol.com</0>"
   2768 "[\w-]+@([\w-]+\.)+[\w-]+"   G "<0>a@b.c</0>"
   2769 "[\w-]+@([\w-]+\.)+[\w-]+"     "asdf"
   2770 "[\w-]+@([\w-]+\.)+[\w-]+"     "1234"
   2771 "\d{4}-?\d{4}-?\d{4}-?\d{4}"   G "<0>1234-1234-1234-1234</0>"
   2772 "\d{4}-?\d{4}-?\d{4}-?\d{4}"   G "<0>1234123412341234</0>"
   2773 "\d{4}-?\d{4}-?\d{4}-?\d{4}"     "1234123412345"
   2774 "^\d{5}$"   G "<0>33333</0>"
   2775 "^\d{5}$"   G "<0>55555</0>"
   2776 "^\d{5}$"   G "<0>23445</0>"
   2777 "^\d{5}$"     "abcd"
   2778 "^\d{5}$"     "1324"
   2779 "^\d{5}$"     "as;lkjdf"
   2780 "(\w+)\s+\1"   G "<0>hubba hubba</0>"
   2781 "(\w+)\s+\1"   G "<0>mandate dated</0>"
   2782 "(\w+)\s+\1"   G "<0>an annual</0>"
   2783 "(\w+)\s+\1"     "may day"
   2784 "(\w+)\s+\1"     "gogo"
   2785 "(\w+)\s+\1"     "1212"
   2786 "^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$"   G "<0>3SquareBand.com</0>"
   2787 "^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$"   G "<0>asp.net</0>"
   2788 "^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$"   G "<0>army.mil</0>"
   2789 "^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$"     "$SquareBand.com"
   2790 "^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$"     "asp/dot.net"
   2791 "^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$"     "army.military"