]> git.saurik.com Git - apple/icu.git/blob - icuSources/test/testdata/regextst.txt
ICU-62107.0.1.tar.gz
[apple/icu.git] / icuSources / test / testdata / regextst.txt
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 # Anchoring Bounds
93 #
94 "^def$" "abc<r><0>def</0></r>ghi" # anchoring (default) bounds
95 "^def$" a "abc<r>def</r>ghi" # non-anchoring bounds
96 "^def" a "<r><0>def</0></r>ghi" # non-anchoring bounds
97 "def$" a "abc<r><0>def</0></r>" # non-anchoring bounds
98
99 "^.*$" m "<0>line 1</0>\n line 2"
100 "^.*$" m2 "line 1\n<0> line 2</0>"
101 "^.*$" m3 "line 1\n line 2"
102 "^.*$" m "li<r><0>ne </0></r>1\n line 2" # anchoring bounds
103 "^.*$" m2 "li<r>ne </r>1\n line 2" # anchoring bounds
104 "^.*$" am "li<r>ne </r>1\n line 2" # non-anchoring bounds
105 "^.*$" am "li\n<r><0>ne </0></r>\n1\n line 2" # non-anchoring bounds
106
107 #
108 # HitEnd and RequireEnd for new-lines just before end-of-input
109 #
110 "xyz$" yz "<0>xyz</0>\n"
111 "xyz$" yz "<0>xyz</0>\x{d}\x{a}"
112
113 "xyz$" myz "<0>xyz</0>" # multi-line mode
114 "xyz$" mYZ "<0>xyz</0>\n"
115 "xyz$" mYZ "<0>xyz</0>\r\n"
116 "xyz$" mYZ "<0>xyz</0>\x{85}abcd"
117
118 "xyz$" Yz "xyz\nx"
119 "xyz$" Yz "xyza"
120 "xyz$" yz "<0>xyz</0>"
121
122 #
123 # HitEnd
124 #
125 "abcd" Lz "a"
126 "abcd" Lz "ab"
127 "abcd" Lz "abc"
128 "abcd" LZ "<0>abcd</0>"
129 "abcd" LZ "<0>abcd</0>e"
130 "abcd" LZ "abcx"
131 "abcd" LZ "abx"
132 "abcd" Lzi "a"
133 "abcd" Lzi "ab"
134 "abcd" Lzi "abc"
135 "abcd" LZi "<0>abcd</0>"
136 "abcd" LZi "<0>abcd</0>e"
137 "abcd" LZi "abcx"
138 "abcd" LZi "abx"
139
140 #
141 # All Unicode line endings recognized.
142 # 0a, 0b, 0c, 0d, 0x85, 0x2028, 0x2029
143 # Multi-line and non-multiline mode take different paths, so repeated tests.
144 #
145 "^def$" mYZ "abc\x{a}<0>def</0>\x{a}ghi"
146 "^def$" mYZ "abc\x{b}<0>def</0>\x{b}ghi"
147 "^def$" mYZ "abc\x{c}<0>def</0>\x{c}ghi"
148 "^def$" mYZ "abc\x{d}<0>def</0>\x{d}ghi"
149 "^def$" mYZ "abc\x{85}<0>def</0>\x{85}ghi"
150 "^def$" mYZ "abc\x{2028}<0>def</0>\x{2028}ghi"
151 "^def$" mYZ "abc\x{2029}<0>def</0>\x{2029}ghi"
152 "^def$" mYZ "abc\r\n<0>def</0>\r\nghi"
153
154 "^def$" yz "<0>def</0>\x{a}"
155 "^def$" yz "<0>def</0>\x{b}"
156 "^def$" yz "<0>def</0>\x{c}"
157 "^def$" yz "<0>def</0>\x{d}"
158 "^def$" yz "<0>def</0>\x{85}"
159 "^def$" yz "<0>def</0>\x{2028}"
160 "^def$" yz "<0>def</0>\x{2029}"
161 "^def$" yz "<0>def</0>\r\n"
162 "^def$" yz "<0>def</0>"
163
164
165 "^def$" "<0>def</0>\x{2028" #TODO: should be an error of some sort.
166
167 #
168 # UNIX_LINES mode
169 #
170 "abc$" D "<0>abc</0>\n"
171 "abc$" D "abc\r"
172 "abc$" D "abc\u0085"
173 "a.b" D "<0>a\rb</0>"
174 "a.b" D "a\nb"
175 "(?d)abc$" "<0>abc</0>\n"
176 "(?d)abc$" "abc\r"
177 "abc$" mD "<0>abc</0>\ndef"
178 "abc$" mD "abc\rdef"
179
180 ".*def" L "abc\r def xyz" # Normal mode, LookingAt() stops at \r
181 ".*def" DL "<0>abc\r def</0> xyz" # Unix Lines mode, \r not line end.
182 ".*def" DL "abc\n def xyz"
183
184 "(?d)a.b" "a\nb"
185 "(?d)a.b" "<0>a\rb</0>"
186
187 "^abc" m "xyz\r<0>abc</0>"
188 "^abc" Dm "xyz\rabc"
189 "^abc" Dm "xyz\n<0>abc</0>"
190
191
192
193 # Capturing parens
194 ".(..)." "<0>a<1>bc</1>d</0>"
195 ".*\A( +hello)" "<0><1> hello</1></0>"
196 "(hello)|(goodbye)" "<0><1>hello</1></0>"
197 "(hello)|(goodbye)" "<0><2>goodbye</2></0>"
198 "abc( +( inner(X?) +) xyz)" "leading cruft <0>abc<1> <2> inner<3></3> </2> xyz</1></0> cruft"
199 "\s*([ixsmdt]*)([:letter:]*)" "<0> <1>d</1><2></2></0> "
200 "(a|b)c*d" "a<0><1>b</1>cd</0>"
201
202 # Non-capturing parens (?: stuff). Groups, but does not capture.
203 "(?:abc)*(tail)" "<0>abcabcabc<1>tail</1></0>"
204
205 # Non-greedy *? quantifier
206 ".*?(abc)" "<0> abx <1>abc</1></0> abc abc abc"
207 ".*(abc)" "<0> abx abc abc abc <1>abc</1></0>"
208
209 "((?:abc |xyz )*?)abc " "<0><1>xyz </1>abc </0>abc abc "
210 "((?:abc |xyz )*)abc " "<0><1>xyz abc abc </1>abc </0>"
211
212 # Non-greedy +? quantifier
213 "(a+?)(a*)" "<0><1>a</1><2>aaaaaaaaaaaa</2></0>"
214 "(a+)(a*)" "<0><1>aaaaaaaaaaaaa</1><2></2></0>"
215
216 "((ab)+?)((ab)*)" "<0><1><2>ab</2></1><3>ababababab<4>ab</4></3></0>"
217 "((ab)+)((ab)*)" "<0><1>abababababab<2>ab</2></1><3></3></0>"
218
219 # Non-greedy ?? quantifier
220 "(ab)(ab)??(ab)??(ab)??(ab)??c" "<0><1>ab</1><4>ab</4><5>ab</5>c</0>"
221
222 # Unicode Properties as naked elements in a pattern
223 "\p{Lu}+" "here we go ... <0>ABC</0> and no more."
224 "(\p{L}+)(\P{L}*?) (\p{Zs}*)" "7999<0><1>letters</1><2>4949%^&*(</2> <3> </3></0>"
225
226 # \w and \W
227 "\w+" " $%^&*( <0>hello123</0>%^&*("
228 "\W+" "<0> $%^&*( </0>hello123%^&*("
229
230 # \A match at beginning of input only.
231 ".*\Ahello" "<0>hello</0> hello"
232 ".*hello" "<0>hello hello</0>"
233 ".*\Ahello" "stuff\nhello" # don't match after embedded new-line.
234
235 # \b \B
236 #
237 ".*?\b(.).*" "<0> $%^&*( <1>h</1>ello123%^&*()gxx</0>"
238 "\ba\b" "-<0>a</0>"
239 "\by\b" "xy"
240 "[ \b]" "<0>b</0>" # in a set, \b is a literal b.
241
242 # Finds first chars of up to 5 words
243 "(?:.*?\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"
244
245 "H.*?((?:\B.)+)" "<0>H<1>ello</1></0> "
246 ".*?((?:\B.)+).*?((?:\B.)+).*?((?:\B.)+)" "<0>H<1>ello</1> <2> </2>g<3>oodbye</3></0> "
247
248 "(?:.*?\b(.))?(?:.*?\b(.))?(?:.*?\b(.))?(?:.*?\b(.))?(?:.*?\b(.))?.*" "<0> \u0301 \u0301<1>A</1>\u0302BC\u0303\u0304<2> </2>\u0305 \u0306<3>X</3>\u0307Y\u0308</0>"
249
250
251 #
252 # Unicode word boundary mode
253 #
254 "(?w).*?\b" v "<0></0>hello, world"
255 "(?w).*?(\b.+?\b).*" v "<0><1> </1>123.45 </0>"
256 "(?w).*?(\b\d.*?\b).*" v "<0> <1>123.45</1> </0>"
257 ".*?(\b.+?\b).*" "<0> <1>123</1>.45 </0>"
258 "(?w:.*?(\b\d.*?\b).*)" v "<0> <1>123.45</1> </0>"
259 "(?w:.*?(\b.+?\b).*)" v "<0><1>don't</1> </0>"
260 "(?w:.+?(\b\S.+?\b).*)" v "<0> <1>don't</1> </0>"
261 "(?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>"
262
263 #
264 # Unicode word boundaries with Regions
265 #
266 "(?w).*?\b" v "abc<r><0>def</0></r>ghi"
267 "(?w).*?\b" v2 "abc<r>def<0></0></r>ghi"
268 "(?w).*?\b" v3 "abc<r>def</r>ghi"
269 #"(?w).*?\b" vb "abc<r><0>def</0></r>ghi" # TODO: bug. Ticket 6073
270 #"(?w).*?\b" vb2 "abc<r>def</r>ghi"
271
272
273
274 # . does not match new-lines
275 "." "\u000a\u000d\u0085\u000c\u000b\u2028\u2029<0>X</0>\u000aY"
276 "A." "A\u000a "# no match
277
278 # \d for decimal digits
279 "\d*" "<0>0123456789\u0660\u06F9\u0969\u0A66\u17E2\uFF10\U0001D7CE\U0001D7FF</0>non-digits"
280 "\D+" "<0>non digits</0>"
281 "\D*(\d*)(\D*)" "<0>non-digits<1>3456666</1><2>more non digits</2></0>"
282
283 # \Q...\E quote mode
284 "hel\Qlo, worl\Ed" "<0>hello, world</0>"
285 "\Q$*^^(*)?\A\E(a*)" "<0>$*^^(*)?\\A<1>aaaaaaaaaaaaaaa</1></0>"
286 "[abc\Q]\r\E]+" "<0>aaaccc]]]\\\\\\</0>\r..." # \Q ... \E escape in a [set]
287
288 # UREGEX_LITERAL - entire pattern is a literal string, no escapes recognized.
289 # Note that data strings in test cases still get escape processing.
290 "abc\an\r\E\\abcd\u0031bye" Q "lead<0>abc\\an\\r\\E\\\\abcd\\u0031bye</0>extra"
291 "case insensitive \\ (l)iteral" Qi "stuff!! <0>cAsE InSenSiTiVE \\\\ (L)ITeral</0>"
292
293 # \S and \s space characters
294 "\s+" "not_space<0> \t \r \n \u3000 \u2004 \u2028 \u2029</0>xyz"
295 "(\S+).*?(\S+).*" "<0><1>Not-spaces</1> <2>more-non-spaces</2> </0>"
296
297 # \X consume one Grapheme Cluster.
298 "(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?" "<0><1>A</1><2>B</2><3> </3><4>\r\n</4></0>"
299 "(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?" "<0><1>A\u0301</1><2>\n</2><3>\u0305</3><4>a\u0302\u0303\u0304</4></0>"
300 "(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?" "<0><1>\u1100\u1161\u11a8</1><2>\u115f\u11a2\u11f9</2></0>"
301 "(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?" "<0><1>\u1100\uac01</1><2>\uac02</2><3>\uac03\u11b0</3></0>"
302 "(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?(\X)?" "<0><1>\u1100\u1101\uac02\u0301</1><2>\u1100</2></0>"
303
304 # ^ matches only at beginning of line
305 ".*^(Hello)" "<0><1>Hello</1></0> Hello Hello Hello Goodbye"
306 ".*(Hello)" "<0>Hello Hello Hello <1>Hello</1></0> Goodbye"
307 ".*^(Hello)" " Hello Hello Hello Hello Goodbye"# No Match
308
309 # $ matches only at end of line, or before a newline preceding the end of line
310 ".*?(Goodbye)$" zy "<0>Hello Goodbye Goodbye <1>Goodbye</1></0>"
311 ".*?(Goodbye)" ZY "<0>Hello <1>Goodbye</1></0> Goodbye Goodbye"
312 ".*?(Goodbye)$" z "Hello Goodbye> Goodbye Goodbye "# No Match
313
314 ".*?(Goodbye)$" zy "<0>Hello Goodbye Goodbye <1>Goodbye</1></0>\n"
315 ".*?(Goodbye)$" zy "<0>Hello Goodbye Goodbye <1>Goodbye</1></0>\n"
316 ".*?(Goodbye)$" zy "<0>Hello Goodbye Goodbye <1>Goodbye</1></0>\r\n"
317 ".*?(Goodbye)$" z "Hello Goodbye Goodbye Goodbye\n\n"# No Match
318
319 # \Z matches at end of input, like $ with default flags.
320 ".*?(Goodbye)\Z" zy "<0>Hello Goodbye Goodbye <1>Goodbye</1></0>"
321 ".*?(Goodbye)" ZY "<0>Hello <1>Goodbye</1></0> Goodbye Goodbye"
322 ".*?(Goodbye)\Z" z "Hello Goodbye> Goodbye Goodbye "# No Match
323 "here$" z "here\nthe end"# No Match
324
325 ".*?(Goodbye)\Z" "<0>Hello Goodbye Goodbye <1>Goodbye</1></0>\n"
326 ".*?(Goodbye)\Z" "<0>Hello Goodbye Goodbye <1>Goodbye</1></0>\n"
327 ".*?(Goodbye)\Z" "<0>Hello Goodbye Goodbye <1>Goodbye</1></0>\r\n"
328 ".*?(Goodbye)\Z" "Hello Goodbye Goodbye Goodbye\n\n"# No Match
329
330 # \z matches only at the end of string.
331 # no special treatment of new lines.
332 # no dependencies on flag settings.
333 ".*?(Goodbye)\z" zy "<0>Hello Goodbye Goodbye <1>Goodbye</1></0>"
334 ".*?(Goodbye)\z" z "Hello Goodbye Goodbye Goodbye "# No Match
335 "here$" z "here\nthe end"# No Match
336
337 ".*?(Goodbye)\z" z "Hello Goodbye Goodbye Goodbye\n"# No Match
338 ".*?(Goodbye)\n\z" zy "<0>Hello Goodbye Goodbye <1>Goodbye</1>\n</0>"
339 "abc\z|def" ZY "abc<0>def</0>"
340
341 # (?# comment) doesn't muck up pattern
342 "Hello (?# this is a comment) world" " <0>Hello world</0>..."
343
344 # Check some implementation corner cases base on the way literal strings are compiled.
345 "A" "<0>A</0>"
346 "AB" "<0>AB</0>ABABAB"
347 "AB+" "<0>ABBB</0>A"
348 "AB+" "<0>AB</0>ABAB"
349 "ABC+" "<0>ABC</0>ABC"
350 "ABC+" "<0>ABCCCC</0>ABC"
351 "(?:ABC)+" "<0>ABCABCABC</0>D"
352 "(?:ABC)DEF+" "<0>ABCDEFFF</0>D"
353 "AB\.C\eD\u0666E" "<0>AB.C\u001BD\u0666E</0>F"
354 "ab\Bde" "<0>abde</0>"
355
356 # loop breaking
357 "(a?)*" "<0><1></1></0>xyz"
358 "(a?)+" "<0><1></1></0>xyz"
359 "^(?:a?b?)*$" "a--"
360 "(x?)*xyz" "<0>xx<1></1>xyz</0>" # Sligthly wierd, but correct. The "last" time through (x?),
361 # it matches the empty string.
362
363 # Set expressions, basic operators and escapes work
364 #
365 "[\d]+" "<0>0123</0>abc/.,"
366 "[^\d]+" "0123<0>abc/.,</0>"
367 "[\D]+" "0123<0>abc/.,</0>"
368 "[^\D]+" "<0>0123</0>abc/.,"
369
370 "[\s]+" "<0> \t</0>abc/.,"
371 "[^\s]+" " \t<0>abc/.,</0>"
372 "[\S]+" " \t<0>abc/.,</0>"
373 "[^\S]+" "<0> \t</0>abc/.,"
374
375 "[\w]+" "<0>abc123</0> .,;"
376 "[^\w]+" "abc123<0> .,;</0>"
377 "[\W]+" "abc123<0> .,;</0>"
378 "[^\W]+" "<0>abc123</0> .,;"
379
380 "[\z]+" "abc<0>zzz</0>def" # \z has no special meaning
381 "[^\z]+" "<0>abc</0>zzzdef"
382 "[\^]+" "abc<0>^^</0>"
383 "[^\^]+" "<0>abc</0>^^"
384
385 "[\u0041c]+" "<0>AcAc</0>def"
386 "[\U00010002]+" "<0>\ud800\udc02</0>\U00010003"
387 "[^\U00010002]+" "<0>Hello</0>\x{10002}"
388 "[\x61b]+" "<0>abab</0>cde"
389 #"[\x6z]+" "\x06" #TODO: single hex digits should fail
390 "[\x{9}\x{75}\x{6d6}\x{6ba6}\x{6146B}\x{10ffe3}]+" "<0>\u0009\u0075\u06d6\u6ba6\U0006146B\U0010ffe3</0>abc"
391
392 "[\N{LATIN CAPITAL LETTER TONE SIX}ab\N{VARIATION SELECTOR-70} ]+" "x<0> \u0184\U000E0135 ab</0>c"
393 "[\N{LATIN SMALL LETTER C}-\N{LATIN SMALL LETTER F}]+" "ab<0>cdef</0>ghi"
394
395
396
397 #
398 # [set expressions], check the precedence of '-', '&', '--', '&&'
399 # '-' and '&', for compatibility with ICU UnicodeSet, have the same
400 # precedence as the implicit Union between adjacent items.
401 # '--' and '&&', for compatibility with Java, have lower precedence than
402 # the implicit Union operations. '--' and '&&' themselves
403 # have the same precedence, and group left to right.
404 #
405 "[[a-m]-[f-w]p]+" "<0>dep</0>fgwxyz"
406 "[^[a-m]-[f-w]p]+" "dep<0>fgwxyz</0>"
407
408 "[[a-m]--[f-w]p]+" "<0>de</0>pfgwxyz"
409 "[^[a-m]--[f-w]p]+" "de<0>pfgwxyz</0>"
410
411 "[[a-m]&[e-s]w]+" "<0>efmw</0>adnst"
412 "[^[a-m]&[e-s]w]+" "efmw<0>adnst</0>"
413
414 "[[a-m]&[e-s]]+" "<0>efm</0>adnst"
415
416
417
418 # {min,max} iteration qualifier
419 "A{3}BC" "<0>AAABC</0>"
420
421 "(ABC){2,3}AB" "no matchAB"
422 "(ABC){2,3}AB" "ABCAB"
423 "(ABC){2,3}AB" "<0>ABC<1>ABC</1>AB</0>"
424 "(ABC){2,3}AB" "<0>ABCABC<1>ABC</1>AB</0>"
425 "(ABC){2,3}AB" "<0>ABCABC<1>ABC</1>AB</0>CAB"
426
427 "(ABC){2}AB" "ABCAB"
428 "(ABC){2}AB" "<0>ABC<1>ABC</1>AB</0>"
429 "(ABC){2}AB" "<0>ABC<1>ABC</1>AB</0>CAB"
430 "(ABC){2}AB" "<0>ABC<1>ABC</1>AB</0>CABCAB"
431
432 "(ABC){2,}AB" "ABCAB"
433 "(ABC){2,}AB" "<0>ABC<1>ABC</1>AB</0>"
434 "(ABC){2,}AB" "<0>ABCABC<1>ABC</1>AB</0>"
435 "(ABC){2,}AB" "<0>ABCABCABC<1>ABC</1>AB</0>"
436
437 "X{0,0}ABC" "<0>ABC</0>"
438 "X{0,1}ABC" "<0>ABC</0>"
439
440 "(?:Hello(!{1,3}) there){1}" "Hello there"
441 "(?:Hello(!{1,3}) there){1}" "<0>Hello<1>!</1> there</0>"
442 "(?:Hello(!{1,3}) there){1}" "<0>Hello<1>!!</1> there</0>"
443 "(?:Hello(!{1,3}) there){1}" "<0>Hello<1>!!!</1> there</0>"
444 "(?:Hello(!{1,3}) there){1}" "Hello!!!! there"
445
446 # Nongreedy {min,max}? intervals
447 "(ABC){2,3}?AB" "no matchAB"
448 "(ABC){2,3}?AB" "ABCAB"
449 "(ABC){2,3}?AB" "<0>ABC<1>ABC</1>AB</0>"
450 "(ABC){2,3}?AB" "<0>ABC<1>ABC</1>AB</0>CAB"
451 "(ABC){2,3}?AB" "<0>ABC<1>ABC</1>AB</0>CABCAB"
452 "(ABC){2,3}?AX" "<0>ABCABC<1>ABC</1>AX</0>"
453 "(ABC){2,3}?AX" "ABC<0>ABCABC<1>ABC</1>AX</0>"
454
455 # Possessive {min,max}+ intervals
456 "(ABC){2,3}+ABC" "ABCABCABC"
457 "(ABC){1,2}+ABC" "<0>ABC<1>ABC</1>ABC</0>"
458 "(?:(.)\1){2,5}+." "<0>aabbcc<1>d</1>de</0>x"
459
460
461 # Atomic Grouping
462 "(?>.*)abc" "abcabcabc" # no match. .* consumed entire string.
463 "(?>(abc{2,4}?))(c*)" "<0><1>abcc</1><2>ccc</2></0>ddd"
464 "(\.\d\d(?>[1-9]?))\d+" "1.625"
465 "(\.\d\d(?>[1-9]?))\d+" "1<0><1>.625</1>0</0>"
466
467 # Possessive *+
468 "(abc)*+a" "abcabcabc"
469 "(abc)*+a" "<0>abc<1>abc</1>a</0>b"
470 "(a*b)*+a" "<0><1>aaaab</1>a</0>aaa"
471
472 # Possessive ?+
473 "c?+ddd" "<0>cddd</0>"
474 "c?+cddd" "cddd"
475 "c?cddd" "<0>cddd</0>"
476
477 # Back Reference
478 "(?:ab(..)cd\1)*" "<0>ab23cd23ab<1>ww</1>cdww</0>abxxcdyy"
479 "ab(?:c|(d?))(\1)" "<0>ab<1><2></2></1></0>c"
480 "ab(?:c|(d?))(\1)" "<0>ab<1>d</1><2>d</2></0>"
481 "ab(?:c|(d?))(\1)" "<0>ab<1></1><2></2></0>e"
482 "ab(?:c|(d?))(\1)" "<0>ab<1></1><2></2></0>"
483
484 # Back References that hit/don't hit end
485 "(abcd) \1" z "abcd abc"
486 "(abcd) \1" Z "<0><1>abcd</1> abcd</0>"
487 "(abcd) \1" Z "<0><1>abcd</1> abcd</0> "
488
489 # Case Insensitve back references that hit/don't hit end.
490 "(abcd) \1" zi "abcd abc"
491 "(abcd) \1" Zi "<0><1>abcd</1> ABCD</0>"
492 "(abcd) \1" Zi "<0><1>abcd</1> ABCD</0> "
493
494 # Back references that hit/don't hit boundary limits.
495
496 "(abcd) \1" z "<r>abcd abc</r>d "
497 "(abcd) \1" Z "<r><0><1>abcd</1> abcd</0></r> "
498 "(abcd) \1" Z "<r><0><1>abcd</1> abcd</0> </r>"
499
500 "(abcd) \1" zi "<r>abcd abc</r>d "
501 "(abcd) \1" Zi "<r><0><1>abcd</1> abcd</0></r> "
502 "(abcd) \1" Zi "<r><0><1>abcd</1> abcd</0> </r>"
503
504 # Back reference that fails match near the end of input without actually hitting the end.
505 "(abcd) \1" ZL "abcd abd"
506 "(abcd) \1" ZLi "abcd abd"
507
508 # Back reference to a zero-length match. They are always a successful match.
509 "ab(x?)cd(\1)ef" "<0>ab<1></1>cd<2></2>ef</0>"
510 "ab(x?)cd(\1)ef" i "<0>ab<1></1>cd<2></2>ef</0>"
511
512 # Back refs to capture groups that didn't participate in the match.
513 "ab(?:(c)|(d))\1" "abde"
514 "ab(?:(c)|(d))\1" "<0>ab<1>c</1>c</0>e"
515 "ab(?:(c)|(d))\1" i "abde"
516 "ab(?:(c)|(d))\1" i "<0>ab<1>c</1>c</0>e"
517
518 # Named back references
519 "(?<one>abcd)\k<one>" "<0><1>abcd</1>abcd</0>"
520 "(no)?(?<one>abcd)\k<one>" "<0><2>abcd</2>abcd</0>"
521
522 "(?<a_1>...)" E " " # backref names are ascii letters & numbers only"
523 "(?<1a>...)" E " " # backref names must begin with a letter"
524 "(?<a>.)(?<a>.)" E " " # Repeated names are illegal.
525
526
527 # Case Insensitive
528 "aBc" i "<0>ABC</0>"
529 "a[^bc]d" i "ABD"
530 '((((((((((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>"
531
532 "(?:(?i)a)b" "<0>Ab</0>"
533 "ab(?i)cd" "<0>abCd</0>"
534 "ab$cd" "abcd"
535
536 "ssl" i "abc<0>ßl</0>xyz"
537 "ssl" i "abc<0>ẞl</0>xyz"
538 "FIND" i "can <0>find</0> ?" # fi ligature, \ufb01
539 "find" i "can <0>FIND</0> ?"
540 "ῧ" i "xxx<0>ῧ</0>xxx" # Composed char (match string) decomposes when case-folded (pattern)
541
542 # White space handling
543 "a b" "ab"
544 "abc " "abc"
545 "abc " "<0>abc </0>"
546 "ab[cd e]z" "<0>ab z</0>"
547 "ab\ c" "<0>ab c</0> "
548 "ab c" "<0>ab c</0> "
549 "ab c" x "ab c "
550 "ab\ c" x "<0>ab c</0> "
551
552 #
553 # Pattern Flags
554 #
555 "(?u)abc" "<0>abc</0>"
556 "(?-u)abc" "<0>abc</0>"
557
558 #
559 # \c escapes (Control-whatever)
560 #
561 "\cA" "<0>\u0001</0>"
562 "\ca" "<0>\u0001</0>"
563 "\c\x" "<0>\u001cx</0>"
564
565
566 #Multi-line mode
567 'b\s^' m "a\nb\n"
568 "(?m)^abc$" "abc \n abc\n<0>abc</0>\nabc"
569 "(?m)^abc$" 2 "abc \n abc\nabc\n<0>abc</0>"
570 "^abc$" 2 "abc \n abc\nabc\nabc"
571
572 # Empty and full range
573 "[\u0000-\U0010ffff]+" "<0>abc\u0000\uffff\U00010000\U0010ffffzz</0>"
574 "[^\u0000-\U0010ffff]" "abc\u0000\uffff\U00010000\U0010ffffzz"
575 "[^a--a]+" "<0>abc\u0000\uffff\U00010000\U0010ffffzz</0>"
576
577 # Free-spacing mode
578 "a b c # this is a comment" x "<0>abc</0> "
579 '^a (?#xxx) (?#yyy) {3}c' x "<0>aaac</0>"
580 "a b c [x y z]" x "abc "
581 "a b c [x y z]" x "a b c "
582 "a b c [x y z]" x "<0>abcx</0>yz"
583 "a b c [x y z]" x "<0>abcy</0>yz"
584
585 #
586 # Look Behind
587 #
588 "(?<=a)b" "a<0>b</0>"
589 "(.*)(?<=[bc])" "<0><1>abc</1></0>d"
590 "(?<=(abc))def" "<1>abc</1><0>def</0>" # lookbehind precedes main match.
591 "(?<=ab|abc)xyz" "abwxyz" # ab matches, but not far enough.
592 "(?<=abc)cde" "abcde"
593 "(?<=abc|ab)cde" "ab<0>cde</0>"
594 "(?<=abc|ab)cde" "abc<0>cde</0>"
595
596 "(?<=bc?c?c?)cd" "ab<0>cd</0>"
597 "(?<=bc?c?c?)cd" "abc<0>cd</0>"
598 "(?<=bc?c?c?)cd" "abcc<0>cd</0>"
599 "(?<=bc?c?c?)cd" "abccc<0>cd</0>"
600 "(?<=bc?c?c?)cd" "abcccccd"
601 "(?<=bc?c?c?)c+d" "ab<0>cccccd</0>"
602
603 ".*(?<=: ?)(\w*)" "<0>1:one 2: two 3:<1>three</1></0> "
604
605 #
606 # Named Characters
607 #
608 "a\N{LATIN SMALL LETTER B}c" "<0>abc</0>"
609 "a\N{LATIN SMALL LETTER B}c" i "<0>abc</0>"
610 "a\N{LATIN SMALL LETTER B}c" i "<0>aBc</0>"
611 "a\N{LATIN SMALL LETTER B}c" "aBc"
612
613 "\N{FULL STOP}*" "<0>...</0>abc"
614
615 "$" "abc<0></0>"
616
617 #
618 # Optimizations of .* at end of patterns
619 #
620 "abc.*" "<0>abcdef</0>"
621 "abc.*$" "<0>abcdef</0>"
622 "abc(.*)" "<0>abc<1>def</1></0>"
623 "abc(.*)" "<0>abc<1></1></0>"
624 "abc.*" "<0>abc</0>\ndef"
625 "abc.*" s "<0>abc\ndef</0>"
626 "abc.*$" s "<0>abc\ndef</0>"
627 "abc.*$" "abc\ndef"
628 "abc.*$" m "<0>abc</0>\ndef"
629 "abc.*\Z" m "abc\ndef"
630 "abc.*\Z" sm "<0>abc\ndef</0>"
631
632 "abc*" "<0>abccc</0>d"
633 "abc*$" "<0>abccc</0>"
634 "ab(?:ab[xyz]\s)*" "<0>ababy abx </0>abc"
635
636 "(?:(abc)|a)(?:bc)+" "<0>abc</0>"
637 "(?:(abc)|a)(?:bc)*" "<0><1>abc</1></0>"
638 "^[+\-]?[0-9]*\.?[0-9]*" "<0>123.456</0>"
639
640 "ab.+yz" "<0>abc12345xyz</0>ttt"
641 "ab.+yz" s "<0>abc12345xyz</0>ttt"
642
643 "ab.+yz" "abc123\n45xyzttt"
644 "ab.+yz" s "<0>abc12\n345xyz</0>ttt"
645
646 "ab[0-9]+yz" "---abyz+++"
647 "ab[0-9]+yz" "---<0>ab1yz</0>+++"
648 "ab[0-9]+yz" "---<0>ab12yz</0>+++"
649 "ab[0-9]+yz" "---<0>ab123456yz</0>+++"
650
651 "ab([0-9]+|[A-Z]+)yz" "---abyz+++"
652 "ab([0-9]+|[A-Z]+)yz" "---<0>ab<1>1</1>yz</0>+++"
653 "ab([0-9]+|[A-Z]+)yz" "---<0>ab<1>12</1>yz</0>+++"
654 "ab([0-9]+|[A-Z]+)yz" "---<0>ab<1>A</1>yz</0>+++"
655 "ab([0-9]+|[A-Z]+)yz" "---<0>ab<1>AB</1>yz</0>+++"
656 "ab([0-9]+|[A-Z]+)yz" "---<0>ab<1>ABCDE</1>yz</0>+++"
657
658 #
659 # Hex format \x escaping
660 #
661 "ab\x63" "<0>abc</0>"
662 "ab\x09w" "<0>ab\u0009w</0>"
663 "ab\xabcdc" "<0>ab\u00abcdc</0>"
664 "ab\x{abcd}c" "<0>ab\uabcdc</0>"
665 "ab\x{101234}c" "<0>ab\U00101234c</0>"
666 "abα" "<0>abα</0>"
667
668 #
669 # Octal Escaping. This conforms to Java conventions, not Perl.
670 "\0101\00\03\073\0154\01442" "<0>A\u0000\u0003\u003b\u006c\u0064\u0032</0>"
671 "\0776" "<0>\u003f\u0036</0>" # overflow, the 6 is literal.
672 "\0376xyz" "<0>\u00fexyz</0>"
673 "\08" E "<0>\u00008</0>"
674 "\0" E "x"
675
676 #
677 # \u Surrogate Pairs
678 #
679 "\ud800\udc00" "<0>\U00010000</0>"
680 "\ud800\udc00*" "<0>\U00010000\U00010000\U00010000</0>\U00010001"
681 "\ud800\ud800\udc00" "<0>\ud800\U00010000</0>\U00010000\U00010000\U00010001"
682 "(\ud800)(\udc00)" "\U00010000"
683 "\U00010001+" "<0>\U00010001\U00010001</0>\udc01"
684
685 #
686 # hitEnd with find()
687 #
688 "abc" Z "aa<0>abc</0> abcab"
689 "abc" 2Z "aaabc <0>abc</0>ab"
690 "abc" 3z "aa>abc abcab"
691
692 #
693 # \ escaping
694 #
695 "abc\jkl" "<0>abcjkl</0>" # escape of a non-special letter is just itself.
696 "abc[ \j]kl" "<0>abcjkl</0>"
697
698 #
699 # \R all newline sequences.
700 #
701 "abc\Rxyz" "<0>abc\u000axyz</0>gh"
702 "abc\Rxyz" "<0>abc\u000bxyz</0>gh"
703 "abc\Rxyz" "<0>abc\u000cxyz</0>gh"
704 "abc\Rxyz" "<0>abc\u000dxyz</0>gh"
705 "abc\Rxyz" "<0>abc\u0085xyz</0>gh"
706 "abc\Rxyz" "<0>abc\u2028xyz</0>gh"
707 "abc\Rxyz" "<0>abc\u2029xyz</0>gh"
708 "abc\Rxyz" "<0>abc\u000d\u000axyz</0>gh"
709
710 "abc\R\nxyz" "abc\u000d\u000axyzgh" # \R cannot match only the CR from a CR/LF sequence.
711 "abc\r\nxyz" "<0>abc\u000d\u000axyz</0>gh"
712
713 "abc\Rxyz" "abc\u0009xyz" # Assorted non-matches.
714 "abc\Rxyz" "abc\u000exyz"
715 "abc\Rxyz" "abc\u202axyz"
716
717 # \v \V single character new line sequences.
718
719 "abc\vxyz" "<0>abc\u000axyz</0>gh"
720 "abc\vxyz" "<0>abc\u000bxyz</0>gh"
721 "abc\vxyz" "<0>abc\u000cxyz</0>gh"
722 "abc\vxyz" "<0>abc\u000dxyz</0>gh"
723 "abc\vxyz" "<0>abc\u0085xyz</0>gh"
724 "abc\vxyz" "<0>abc\u2028xyz</0>gh"
725 "abc\vxyz" "<0>abc\u2029xyz</0>gh"
726 "abc\vxyz" "abc\u000d\u000axyzgh"
727 "abc\vxyz" "abc?xyzgh"
728
729 "abc[\v]xyz" "<0>abc\u000axyz</0>gh"
730 "abc[\v]xyz" "<0>abc\u000bxyz</0>gh"
731 "abc[\v]xyz" "<0>abc\u000cxyz</0>gh"
732 "abc[\v]xyz" "<0>abc\u000dxyz</0>gh"
733 "abc[\v]xyz" "<0>abc\u0085xyz</0>gh"
734 "abc[\v]xyz" "<0>abc\u2028xyz</0>gh"
735 "abc[\v]xyz" "<0>abc\u2029xyz</0>gh"
736 "abc[\v]xyz" "abc\u000d\u000axyzgh"
737 "abc[\v]xyz" "abc?xyzgh"
738
739 "abc\Vxyz" "abc\u000axyzgh"
740 "abc\Vxyz" "abc\u000bxyzgh"
741 "abc\Vxyz" "abc\u000cxyzgh"
742 "abc\Vxyz" "abc\u000dxyzgh"
743 "abc\Vxyz" "abc\u0085xyzgh"
744 "abc\Vxyz" "abc\u2028xyzgh"
745 "abc\Vxyz" "abc\u2029xyzgh"
746 "abc\Vxyz" "abc\u000d\u000axyzgh"
747 "abc\Vxyz" "<0>abc?xyz</0>gh"
748
749 # \h \H horizontal white space. Defined as gc=space_separator plus ascii tab
750
751 "abc\hxyz" "<0>abc xyz</0>gh"
752 "abc\Hxyz" "abc xyzgh"
753 "abc\hxyz" "<0>abc\u2003xyz</0>gh"
754 "abc\Hxyz" "abc\u2003xyzgh"
755 "abc\hxyz" "<0>abc\u0009xyz</0>gh"
756 "abc\Hxyz" "abc\u0009xyzgh"
757 "abc\hxyz" "abc?xyzgh"
758 "abc\Hxyz" "<0>abc?xyz</0>gh"
759
760 "abc[\h]xyz" "<0>abc xyz</0>gh"
761 "abc[\H]xyz" "abc xyzgh"
762 "abc[\h]xyz" "<0>abc\u2003xyz</0>gh"
763 "abc[\H]xyz" "abc\u2003xyzgh"
764 "abc[\h]xyz" "<0>abc\u0009xyz</0>gh"
765 "abc[\H]xyz" "abc\u0009xyzgh"
766 "abc[\h]xyz" "abc?xyzgh"
767 "abc[\H]xyz" "<0>abc?xyz</0>gh"
768
769
770 #
771 # Bug xxxx
772 #
773 "(?:\-|(\-?\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>"
774
775
776 #
777 # A random, complex, meaningless pattern that should at least compile
778 #
779 "(?![^\<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"
780
781
782 #
783 # Bug 3225
784
785 "1|9" "<0>1</0>"
786 "1|9" "<0>9</0>"
787 "1*|9" "<0>1</0>"
788 "1*|9" "<0></0>9"
789
790 "(?:a|ac)d" "<0>acd</0>"
791 "a|ac" "<0>a</0>c"
792
793 #
794 # Bug 3320
795 #
796 "(a([^ ]+)){0,} (c)" "<0><1>a<2>b</2></1> <3>c</3></0> "
797 "(a([^ ]+))* (c)" "<0><1>a<2>b</2></1> <3>c</3></0> "
798
799 #
800 # Bug 3436
801 #
802 "(.*?) *$" "<0><1>test</1> </0>"
803
804 #
805 # Bug 4034
806 #
807 "\D" "<0>A</0>BC\u00ffDEF"
808 "\d" "ABC\u00ffDEF"
809 "\D" "<0>\u00ff</0>DEF"
810 "\d" "\u00ffDEF"
811 "\D" "123<0>\u00ff</0>DEF"
812 "\D" "<0>\u0100</0>DEF"
813 "\D" "123<0>\u0100</0>DEF"
814
815 #
816 #bug 4024, new line sequence handling
817 #
818 "(?m)^" "<0></0>AA\u000d\u000aBB\u000d\u000aCC\u000d\u000a"
819 "(?m)^" 2 "AA\u000d\u000a<0></0>BB\u000d\u000aCC\u000d\u000a"
820 "(?m)^" 3 "AA\u000d\u000aBB\u000d\u000a<0></0>CC\u000d\u000a"
821 "(?m)^" 4 "AA\u000d\u000aBB\u000d\u000aCC\u000d\u000a"
822
823 "(?m)$" "AA<0></0>\u000d\u000aBB\u000d\u000aCC\u000d\u000a"
824 "(?m)$" 2 "AA\u000d\u000aBB<0></0>\u000d\u000aCC\u000d\u000a"
825 "(?m)$" 3 "AA\u000d\u000aBB\u000d\u000aCC<0></0>\u000d\u000a"
826 "(?m)$" 4 "AA\u000d\u000aBB\u000d\u000aCC\u000d\u000a<0></0>"
827 "(?m)$" 5 "AA\u000d\u000aBB\u000d\u000aCC\u000d\u000a"
828
829 "$" "AA\u000d\u000aBB\u000d\u000aCC<0></0>\u000d\u000a"
830 "$" 2 "AA\u000d\u000aBB\u000d\u000aCC\u000d\u000a<0></0>"
831 "$" 3 "AA\u000d\u000aBB\u000d\u000aCC\u000d\u000a"
832
833 "$" "\u000a\u0000a<0></0>\u000a"
834 "$" 2 "\u000a\u0000a\u000a<0></0>"
835 "$" 3 "\u000a\u0000a\u000a"
836
837 "$" "<0></0>"
838 "$" 2 ""
839
840 "$" "<0></0>\u000a"
841 "$" 2 "\u000a<0></0>"
842 "$" 3 "\u000a"
843
844 "^" "<0></0>"
845 "^" 2 ""
846
847 "\Z" "<0></0>"
848 "\Z" 2 ""
849 "\Z" 2 "\u000a<0></0>"
850 "\Z" "<0></0>\u000d\u000a"
851 "\Z" 2 "\u000d\u000a<0></0>"
852
853
854 # No matching ^ at interior new-lines if not in multi-line mode.
855 "^" "<0></0>AA\u000d\u000aBB\u000d\u000aCC\u000d\u000a"
856 "^" 2 "AA\u000d\u000aBB\u000d\u000aCC\u000d\u000a"
857
858 #
859 # Dot-matches-any mode, and stopping at new-lines if off.
860 #
861 "." "<0>1</0>23\u000aXYZ"
862 "." 2 "1<0>2</0>3\u000aXYZ"
863 "." 3 "12<0>3</0>\u000aXYZ"
864 "." 4 "123\u000a<0>X</0>YZ" # . doesn't match newlines
865 "." 4 "123\u000b<0>X</0>YZ"
866 "." 4 "123\u000c<0>X</0>YZ"
867 "." 4 "123\u000d<0>X</0>YZ"
868 "." 4 "123\u000d\u000a<0>X</0>YZ"
869 "." 4 "123\u0085<0>X</0>YZ"
870 "." 4 "123\u2028<0>X</0>YZ"
871 "." 4 "123\u2029<0>X</0>YZ"
872 "." 4s "123<0>\u000a</0>XYZ" # . matches any
873 "." 4s "123<0>\u000b</0>XYZ"
874 "." 4s "123<0>\u000c</0>XYZ"
875 "." 4s "123<0>\u000d</0>XYZ"
876 "." 4s "123<0>\u000d\u000a</0>XYZ"
877 "." 4s "123<0>\u0085</0>XYZ"
878 "." 4s "123<0>\u2028</0>XYZ"
879 "." 4s "123<0>\u2029</0>XYZ"
880 ".{6}" "123\u000a\u000dXYZ"
881 ".{6}" s "<0>123\u000a\u000dX</0>Y"
882
883
884 #
885 # Ranges
886 #
887 ".*" "abc<r><0>def</0></r>ghi"
888 "a" "aaa<r><0>a</0>aa</r>aaa"
889 "a" 2 "aaa<r>a<0>a</0>a</r>aaa"
890 "a" 3 "aaa<r>aa<0>a</0></r>aaa"
891 "a" 4 "aaa<r>aaa</r>aaa"
892 "a" "aaa<r><0>a</0>aa</r>aaa"
893
894 #
895 # [set] parsing, systematically run through all of the parser states.
896 #
897 #
898 "[def]+" "abc<0>ddeeff</0>ghi" # set-open
899 "[^def]+" "<0>abc</0>defghi"
900 "[:digit:]+" "abc<0>123</0>def"
901 "[:^digit:]+" "<0>abc</0>123def"
902 "[\u005edef]+" "abc<0>de^f</0>ghi"
903
904 "[]]+" "abc<0>]]]</0>[def" # set-open2
905 "[^]]+" "<0>abc</0>]]][def"
906
907 "[:Lu:]+" "abc<0>ABC</0>def" # set-posix
908 "[:Lu]+" "abc<0>uL::Lu</0>"
909 "[:^Lu]+" "abc<0>uL:^:Lu</0>"
910 "[:]+" "abc<0>:::</0>def"
911 "[:whats this:]" E " "
912 "[--]+" dE "-------"
913
914 "[[nested]]+" "xyz[<0>nnetsteed</0>]abc" #set-start
915 "[\x{41}]+" "CB<0>AA</0>ZYX"
916 "[\[\]\\]+" "&*<0>[]\\</0>..."
917 "[*({<]+" "^&<0>{{(<<*</0>)))"
918
919
920 "[-def]+" "abc<0>def-ef-d</0>xyz" # set-start-dash
921 "[abc[--def]]" E " "
922
923 "[x[&def]]+" "abc<0>def&</0>ghi" # set-start-amp
924 "[&& is bad at start]" E " "
925
926 "[abc" E " " # set-after-lit
927 "[def]]" "abcdef"
928 "[def]]" "abcde<0>f]</0>]"
929
930 "[[def][ghi]]+" "abc]<0>defghi</0>[xyz" # set-after-set
931 "[[def]ghi]+" "abc]<0>defghi</0>[xyz"
932 "[[[[[[[[[[[abc]" E " "
933 "[[abc]\p{Lu}]+" "def<0>abcABC</0>xyz"
934
935 "[d-f]+" "abc<0>def</0>ghi" # set-after-range
936 "[d-f[x-z]]+" "abc<0>defxyzzz</0>gw"
937 "[\s\d]+" "abc<0> 123</0>def"
938 "[d-f\d]+" "abc<0>def123</0>ghi"
939 "[d-fr-t]+" "abc<0>defrst</0>uvw"
940
941 "[abc--]" E " " # set-after-op
942 "[[def]&&]" E " "
943 "[-abcd---]+" "<0>abc</0>--" #[-abcd]--[-]
944 "[&abcd&&&ac]+" "b<0>ac&&ca</0>d" #[&abcd]&&[&ac]
945
946 "[[abcd]&[ac]]+" "b<0>acac</0>d" # set-set-amp
947 "[[abcd]&&[ac]]+" "b<0>acac</0>d"
948 "[[abcd]&&ac]+" "b<0>acac</0>d"
949 "[[abcd]&ac]+" "<0>bacacd&&&</0>"
950
951 "[abcd&[ac]]+" "<0>bacacd&&&</0>" #set-lit-amp
952 "[abcd&&[ac]]+" "b<0>acac</0>d"
953 "[abcd&&ac]+" "b<0>acac</0>d"
954
955 "[[abcd]-[ac]]+" "a<0>bdbd</0>c" # set-set-dash
956 "[[abcd]--[ac]]+" "a<0>bdbd</0>c"
957 "[[abcd]--ac]+" "a<0>bdbd</0>c"
958 "[[abcd]-ac]+" "<0>bacacd---</0>"
959
960 "[a-d--[b-c]]+" "b<0>adad</0>c" # set-range-dash
961 "[a-d--b-c]+" "b<0>adad</0>c"
962 "[a-d-[b-c]]+" "<0>bad-adc</0>"
963 "[a-d-b-c]+" "<0>bad-adc</0>"
964 "[\w--[b-c]]+" "b<0>adad</0>c"
965 "[\w--b-c]+" "b<0>adad</0>c"
966 "[\w-[b-c]]+" "<0>bad-adc</0>"
967 "[\w-b-c]+" "<0>bad-adc</0>"
968
969 "[a-d&&[b-c]]+" "a<0>bcbc</0>d" # set-range-amp
970 "[a-d&&b-c]+" "a<0>bcbc</0>d"
971 "[a-d&[b-c]]+" "<0>abc&bcd</0>"
972 "[a-d&b-c]+" "<0>abc&bcd</0>"
973
974 "[abcd--bc]+" "b<0>adda</0>c" # set-lit-dash
975 "[abcd--[bc]]+" "b<0>adda</0>c"
976 "[abcd-[bc]]+" "<0>bad--dac</0>xyz"
977 "[abcd-]+" "<0>bad--dac</0>xyz"
978
979 "[abcd-\s]+" E "xyz<0>abcd --</0>xyz" # set-lit-dash-esc
980 "[abcd-\N{LATIN SMALL LETTER G}]+" "xyz-<0>abcdefg</0>hij-"
981 "[bcd-\{]+" "a<0>bcdefyz{</0>|}"
982
983 "[\p{Ll}]+" "ABC<0>abc</0>^&*&" # set-escape
984 "[\P{Ll}]+" "abc<0>ABC^&*&</0>xyz"
985 "[\N{LATIN SMALL LETTER Q}]+" "mnop<0>qqq</0>rst"
986 "[\sa]+" "cb<0>a a </0>(*&"
987 "[\S]+" " <0>hello</0> "
988 "[\w]+" " <0>hello_world</0>! "
989 "[\W]+" "a<0> *$%#,</0>hello "
990 "[\d]+" "abc<0>123</0>def"
991 "[\D]+" "123<0>abc</0>567"
992 "[\$\#]+" "123<0>$#$#</0>\\"
993
994 #
995 # Try each of the Java compatibility properties.
996 # These are checked here, while normal Unicode properties aren't, because
997 # these Java compatibility properties are implemented directly by regexp, while other
998 # properties are handled by ICU's Property and UnicodeSet APIs.
999 #
1000 # These tests are only to verify that the names are recognized and the
1001 # implementation isn't dead. They are not intended to verify that the
1002 # function defintions are 100% correct.
1003 #
1004 "[:InBasic Latin:]+" "ΓΔΕΖΗΘ<0>hello, world.</0>ニヌネノハバパ"
1005 "[:^InBasic Latin:]+" "<0>ΓΔΕΖΗΘ</0>hello, world.ニヌネノハバパ"
1006 "\p{InBasicLatin}+" "ΓΔΕΖΗΘ<0>hello, world.</0>ニヌネノハバパ"
1007 "\P{InBasicLatin}+" "<0>ΓΔΕΖΗΘ</0>hello, world.ニヌネノハバパ"
1008 "\p{InGreek}+" "<0>ΓΔΕΖΗΘ</0>hello, world.ニヌネノハバパ"
1009 "\p{InCombining Marks for Symbols}" "<0>\u20d0</0>"
1010 "\p{Incombiningmarksforsymbols}" "<0>\u20d0</0>"
1011
1012
1013 "\p{javaDefined}+" "\uffff<0>abcd</0>\U00045678"
1014 "\p{javaDigit}+" "abc<0>1234</0>xyz"
1015 "\p{javaIdentifierIgnorable}+" "abc<0>\u0000\u000e\u009f</0>xyz"
1016 "\p{javaISOControl}+" "abc<0>\u0000\u000d\u0083</0>xyz"
1017 "\p{javaJavaIdentifierPart}+" "#@!<0>abc123_$</0>;"
1018 "\p{javaJavaIdentifierStart}+" "123\u0301<0>abc$_</0>%^&"
1019 "\p{javaLetter}+" "123<0>abcDEF</0>&*()("
1020 "\p{javaLetterOrDigit}+" "$%^&*<0>123abcகஙசஜஞ</0>☺♘♚☔☎♬⚄⚡"
1021 "\p{javaLowerCase}+" "ABC<0>def</0>&^%#:="
1022 "\p{javaMirrored}+" "ab$%<0>(){}[]</0>xyz"
1023 "\p{javaSpaceChar}+" "abc<0> \u00ao\u2028</0>!@#"
1024 "\p{javaSupplementaryCodePoint}+" "abc\uffff<0>\U00010000\U0010ffff</0>\u0000"
1025 "\p{javaTitleCase}+" "abCE<0>Džῌᾨ</0>123"
1026 "\p{javaUnicodeIdentifierStart}+" "123<0>abcⅣ</0>%^&&*"
1027 "\p{javaUnicodeIdentifierPart}+" "%&&^<0>abc123\u0301\u0002</0>..."
1028 "\p{javaUpperCase}+" "abc<0>ABC</0>123"
1029 "\p{javaValidCodePoint}+" "<0>\u0000abc\ud800 unpaired \udfff |\U0010ffff</0>"
1030 "\p{javaWhitespace}+" "abc\u00a0\u2007\u202f<0> \u0009\u001c\u001f\u2028</0>42"
1031 "\p{all}+" "<0>123\u0000\U0010ffff</0>"
1032 "\P{all}+" "123\u0000\U0010ffff"
1033
1034 # [:word:] is implemented directly by regexp. Not a java compat property, but PCRE and others.
1035
1036 "[:word:]+" ".??$<0>abc123ΓΔΕΖΗ_</0>%%%"
1037 "\P{WORD}+" "<0>.??$</0>abc123ΓΔΕΖΗ_%%%"
1038
1039 #
1040 # Errors on unrecognized ASCII letter escape sequences.
1041 #
1042 "[abc\Y]+" "<0>abcY</0>"
1043 "[abc\Y]+" eE "<0>abcY</0>"
1044
1045 "(?:a|b|c|\Y)+" "<0>abcY</0>"
1046 "(?:a|b|c|\Y)+" eE "<0>abcY</0>"
1047
1048 "\Q\Y\E" e "<0>\\Y</0>"
1049
1050 #
1051 # Reported problem
1052 #
1053 "[a-\w]" E "x"
1054
1055 #
1056 # Bug 4045
1057 #
1058 "A*" "<0>AAAA</0>"
1059 "A*" 2 "AAAA<0></0>"
1060 "A*" 3 "AAAA"
1061 "A*" 4 "AAAA"
1062 "A*" 5 "AAAA"
1063 "A*" 6 "AAAA"
1064 "A*" "<0></0>"
1065 "A*" 2 ""
1066 "A*" 3 ""
1067 "A*" 4 ""
1068 "A*" 5 ""
1069
1070 #
1071 # Bug 4046
1072 #
1073 "(?m)^" "<0></0>AA\u000dBB\u000dCC\u000d"
1074 "(?m)^" 2 "AA\u000d<0></0>BB\u000dCC\u000d"
1075 "(?m)^" 3 "AA\u000dBB\u000d<0></0>CC\u000d"
1076 "(?m)^" 4 "AA\u000dBB\u000dCC\u000d"
1077 "(?m)^" 5 "AA\u000dBB\u000dCC\u000d"
1078 "(?m)^" 6 "AA\u000dBB\u000dCC\u000d"
1079
1080 "(?m)^" "<0></0>AA\u000d\u000aBB\u000d\u000aCC\u000d\u000a"
1081 "(?m)^" 2 "AA\u000d\u000a<0></0>BB\u000d\u000aCC\u000d\u000a"
1082 "(?m)^" 3 "AA\u000d\u000aBB\u000d\u000a<0></0>CC\u000d\u000a"
1083 "(?m)^" 4 "AA\u000d\u000aBB\u000d\u000aCC\u000d\u000a"
1084
1085 #
1086 # Bug 4059
1087 #
1088 "\w+" "<0>イチロー</0>"
1089 "\b....\b." "<0>イチロー?</0>"
1090
1091
1092 #
1093 # Bug 4058 ICU Unicode Set patterns have an odd feature -
1094 # A $ as the last character before the close bracket means match
1095 # a \uffff, which means off the end of the string in transliterators.
1096 # Didn't make sense for regular expressions, and is now fixed.
1097 #
1098 "[\$](P|C|D);" "<0>$<1>P</1>;</0>"
1099 "[$](P|C|D);" "<0>$<1>P</1>;</0>"
1100 "[$$](P|C|D);" "<0>$<1>P</1>;</0>"
1101
1102 #
1103 # bug 4888 Flag settings lost in some cases.
1104 #
1105 "((a){2})|(#)" is "no"
1106 "((a){2})|(#)" is "<0><1>a<2>a</2></1></0>#"
1107 "((a){2})|(#)" is "a<0><3>#</3></0>"
1108
1109 "((a|b){2})|c" is "<0>c</0>"
1110 "((a|b){2})|c" is "<0>C</0>"
1111 "((a|b){2})|c" s "C"
1112
1113 #
1114 # bug 5617 ZWJ \u200d shoudn't cause word boundaries
1115 #
1116 ".+?\b" "<0> </0>\u0935\u0915\u094D\u200D\u0924\u0947 "
1117 ".+?\b" 2 " <0>\u0935\u0915\u094D\u200D\u0924\u0947</0> "
1118 ".+?\b" 3 " \u0935\u0915\u094D\u200D\u0924\u0947 "
1119
1120 #
1121 # bug 5386 "^.*$" should match empty input
1122 #
1123 "^.*$" "<0></0>"
1124 "^.*$" m "<0></0>"
1125 "^.*$" "<0></0>\n"
1126 "(?s)^.*$" "<0>\n</0>"
1127
1128 #
1129 # bug 5386 Empty pattern and empty input should match.
1130 #
1131 "" "<0></0>abc"
1132 "" "<0></0>"
1133
1134 #
1135 # bug 5386 Range upper and lower bounds can be equal
1136 #
1137 "[a-a]" "<0>a</0>"
1138
1139 #
1140 # bug 5386 $* should not fail, should match empty string.
1141 #
1142 "$*" "<0></0>abc"
1143
1144 #
1145 # bug 5386 \Q ... \E escaping problem
1146 #
1147 "[a-z\Q-$\E]+" "QE<0>abc-def$</0>."
1148
1149 # More reported 5386 Java comaptibility failures
1150 #
1151 "[^]*abb]*" "<0>kkkk</0>"
1152 "\xa" "huh" # Java would like to be warned.
1153 "^.*$" "<0></0>"
1154
1155 #
1156 # bug 5386 Empty left alternation should produce a zero length match.
1157 #
1158 "|a" "<0></0>a"
1159 "$|ab" "<0>ab</0>"
1160 "$|ba" "ab<0></0>"
1161
1162 #
1163 # bug 5386 Java compatibility for set expressions
1164 #
1165 "[a-z&&[cde]]+" "ab<0>cde</0>fg"
1166
1167 #
1168 # bug 6019 matches() needs to backtrack and check for a longer match if the
1169 # first match(es) found don't match the entire input.
1170 #
1171 "a?|b" "<0></0>b"
1172 "a?|b" M "<0>b</0>"
1173 "a?|.*?u|stuff|d" M "<0>stuff</0>"
1174 "a?|.*?(u)|stuff|d" M "<0>stuff<1>u</1></0>"
1175 "a+?" "<0>a</0>aaaaaaaaaaaa"
1176 "a+?" M "<0>aaaaaaaaaaaaa</0>"
1177
1178 #
1179 # Bug 7724. Expression to validate zip codes.
1180 #
1181 "(?!0{5})(\d{5})(?!-?0{4})(-?\d{4})?" "<0><1>94040</1><2>-3344</2></0>"
1182 "(?!0{5})(\d{5})(?!-?0{4})(-?\d{4})?" "94040-0000"
1183 "(?!0{5})(\d{5})(?!-?0{4})(-?\d{4})?" "00000-3344"
1184
1185 #
1186 # Bug 8666. Assertion failure on match, bad operand to JMP_SAV_X opcode.
1187 #
1188 "((.??)+|A)*" "<0><1><2></2></1></0>AAAAABBBBBCCCCCDDDDEEEEE"
1189
1190 #
1191 # Bug 8826. Incorrect results with case insensitive matches.
1192 #
1193 "AS(X)" i "aßx"
1194 "AS.*" i "aßx" # Expansion of sharp s can't split between pattern terms.
1195 "ASßS" i "<0>aßß</0>" # All one literal string, does match.
1196 "ASß{1}S" i "aßß" # Pattern with terms, no match.
1197 "aßx" i "<0>assx</0>"
1198 "aßx" i "<0>ASSX</0>"
1199 "aßx" i "<0>aßx</0>"
1200 "ASS(.)" i "<0>aß<1>x</1></0>"
1201
1202 # Case Insensitive, probe some corner cases.
1203 "ass+" i "aß" # Second 's' in pattern is qualified, can't combine with first.
1204 "as+" i "aß"
1205 "aßs" i "as" # Can't match half of a ß
1206 "aß+" i "<0>assssssss</0>s"
1207 "aß+" i "<0>assßSssSSS</0>s"
1208 "a(ß?)+" i "<0>assssssss<1></1></0>s"
1209 "a(ß?)+" i "<0>a<1></1></0>zzzzzzzzs"
1210
1211 "\U00010400" i "<0>\U00010428</0>" # case folded supplemental code point.
1212
1213 "sstuff" i "<0>ßtuff</0>" # exercise optimizations on what chars can start a match.
1214 "sstuff" i "s<0>ßtuff</0>" # exercise optimizations on what chars can start a match.
1215 "ßtuff" i "s<0>sstuff</0>"
1216 "ßtuff" i "s<0>Sstuff</0>"
1217
1218 "a(..)\1" i "<0>A<1>bc</1>BC</0>def"
1219 "(ß)\1" i "aa<0><1>ss</1>ß</0>zz" # Case insensitive back reference
1220 "..(.)\1" i "<0>aa<1>ß</1>ss</0>"
1221 "ab(..)\1" i "xx<0>ab<1>ss</1>ß</0>ss"
1222
1223 " (ss) ((\1.*)|(.*))" i "<0> <1>ss</1> <2><4>sß</4></2></0>" # The back reference 'ss' must not match in 'sß'
1224
1225 # Bug 9057
1226 # \u200c and \u200d should be word characters.
1227 #
1228 "\w+" " <0>abc\u200cdef\u200dghi</0> "
1229 "\w+" i " <0>abc\u200cdef\u200dghi</0> "
1230 "[\w]+" " <0>abc\u200cdef\u200dghi</0> "
1231 "[\w]+" i " <0>abc\u200cdef\u200dghi</0> "
1232
1233 # Bug 9283
1234 # uregex_open fails for look-behind assertion + case-insensitive
1235
1236 "(ab)?(?<=ab)cd|ef" i "<0><1>ab</1>cd</0>"
1237
1238 # Bug 9719 Loop breaking on (zero length match){3,} (unlimited upper bound).
1239 #
1240
1241 "(?:abc){1,}abc" "<0>abcabcabcabcabc</0>"
1242 "(?:2*){2,}?a2\z" "<0>2a2</0>"
1243 "(?:2*){2,}?a2\z" "2a3"
1244 "(?:x?+){3,}+yz" "w<0>yz</0>"
1245 "(2*){2,}?a2\\z" "2a3"
1246 "(2*){2,}?a2\\z" "<0>2<1></1>a2\\z</0>"
1247 "(2*){2,}?a2\z" "<0>2<1></1>a2</0>"
1248
1249
1250 # Bug 10024
1251 # Incorrect (unbounded) longest match length with {1, 20} style quantifiers.
1252 # Unbounded match is disallowed in look-behind expressions.
1253 # Max match length is used to limit where to check for look-behind matches.
1254
1255 "(?<=a{1,5})bc" "aaaa<0>bc</0>def"
1256 "(?<=(?:aa){3,20})bc" "aaaaaa<0>bc</0>def"
1257 "(?<!abc {1,100}|def {1,100}|ghi {1,100})jkl" "def jkl"
1258 "(?<!abc {1,100}|def {1,100}|ghi {1,100})jkl" "rst <0>jkl</0>"
1259 "(?<=a{11})bc" "aaaaaaaaaaa<0>bc</0>"
1260 "(?<=a{11})bc" "aaaaaaaaaabc"
1261 "(?<=a{1,})bc" E "aaaa<0>bc</0>def" # U_REGEX_LOOK_BEHIND_LIMIT error.
1262 "(?<=(?:){11})bc" "<0>bc</0>" # Empty (?:) expression.
1263
1264 # Bug 10835
1265 # Match Start Set not being correctly computed for case insensitive patterns.
1266 # (Test here is to dump the compiled pattern & manually check the start set.)
1267
1268 "(private|secret|confidential|classified|restricted)" i "hmm, <0><1>Classified</1></0> stuff"
1269 "(private|secret|confidential|classified|restricted)" "hmm, Classified stuff"
1270
1271 # Bug 10844
1272
1273 "^([\w\d:]+)$" "<0><1>DiesIst1Beispiel:text</1></0>"
1274 "^([\w\d:]+)$" i "<0><1>DiesIst1Beispiel:text</1></0>"
1275 "^(\w+\d\w+:\w+)$" "<0><1>DiesIst1Beispiel:text</1></0>"
1276 "^(\w+\d\w+:\w+)$" i "<0><1>DiesIst1Beispiel:text</1></0>"
1277
1278 # Bug 11049
1279 # Edge cases in find() when pattern match begins with set of code points
1280 # and the match begins at the end of the string.
1281
1282 "A|B|C" "hello <0>A</0>"
1283 "A|B|C" "hello \U00011234"
1284 "A|B|\U00012345" "hello <0>\U00012345</0>"
1285 "A|B|\U00010000" "hello \ud800"
1286
1287 # Bug 11369
1288 # Incorrect optimization of patterns with a zero length quantifier {0}
1289
1290 "(.|b)(|b){0}\$(?#xxx){3}(?>\D*)" "AAAAABBBBBCCCCCDDDDEEEEE"
1291 "(|b)ab(c)" "<0><1></1>ab<2>c</2></0>"
1292 "(|b){0}a{3}(D*)" "<0>aaa<2></2></0>"
1293 "(|b){0,1}a{3}(D*)" "<0><1></1>aaa<2></2></0>"
1294 "((|b){0})a{3}(D*)" "<0><1></1>aaa<3></3></0>"
1295
1296 # Bug 11370
1297 # Max match length computation of look-behind expression gives result that is too big to fit in the
1298 # in the 24 bit operand portion of the compiled code. Expressions should fail to compile
1299 # (Look-behind match length must be bounded. This case is treated as unbounded, an error.)
1300
1301 "(?<!(0123456789a){10000000})x" E "no match"
1302 "(?<!\\ubeaf(\\ubeaf{11000}){11000})" E "no match"
1303
1304 # Bug 11374 Bad integer overflow check in number conversion.
1305 # 4294967300 converts to 4 with 32 bit overflow.
1306
1307 "x{4294967300}" E "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
1308 "x{0,4294967300}" E "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
1309
1310 # Bug 11373
1311 #
1312 # Overflow checking in max match length computation for loops.
1313 # Value here is 10 * 100000 * 3000 = 3E9, overflowing a 32 bit signed value.
1314 # Before fixing, this case gave an assertion failure.
1315
1316 "(?<=((0123456789){100000}){3000})abc" E "abc"
1317
1318 # Bug 11507 Capture of an unpaired surrogate shouldn't allow a back reference to
1319 # match half of a surrogate pair, but only another unpaired surrogate.
1320 #
1321 "pre(.)post\1" "pre\ud800post\ud800\udc00"
1322 "pre(.)post\1" "<0>pre<1>\ud800</1>post\ud800</0> fin"
1323 "pre(.)post\1" i "pre\ud800post\ud800\udc00" # case insensiteve backrefs take a different code path
1324 "pre(.)post\1" i "<0>pre<1>\ud800</1>post\ud800</0> fin"
1325
1326 # Bug 11554
1327 #
1328 # Maximum match length computation was assuming UTF-16.
1329 # Used in look-behind matches to constrain how far back to look.
1330
1331 "(?<=a\x{100000})spam" "***a\x{100000}<0>spam</0>**"
1332 "(?<=aą)spam" "**aą<0>spam</0>**"
1333 "(?<=ąabc)spam" "**ąabc<0>spam</0>**"
1334
1335 "(?<=a\x{100000})spam" "***a\x{100001}spam**"
1336 "(?<=aą)spam" "**bąspam**"
1337 "(?<=ąabc)spam" "**ąabxspam**"
1338
1339 # with negative look-behind
1340
1341 "(?<!a\x{100000})spam" "***a\x{100000}spam**"
1342 "(?<!aą)spam" "**aąspam**"
1343 "(?<!ąabc)spam" "**ąabcspam**"
1344
1345 "(?<!a\x{100000})spam" "***a\x{100001}<0>spam</0>**"
1346 "(?<!aą)spam" "**bą<0>spam</0>**"
1347 "(?<!ąabc)spam" "**ąabx<0>spam</0>**"
1348
1349 # Bug #12930
1350 #
1351 # Minimum Match Length computation, int32_t overflow on an empty set in the pattern.
1352 # The empty set, with no match possible, has a min match length of INT32_MAX.
1353 # Was incremented subsequently. Caused assertion failure on pattern compile.
1354
1355 "[^\u0000-\U0010ffff]bc?" "bc no match"
1356 "[^\u0000-\U0010ffff]?bc?" "<0>bc</0> has a match"
1357
1358 # Bug #12160 Hit End behavior after find fails to find.
1359 # To match Java, should be true if find fails to find.
1360 #
1361 "abc" Z "<0>abc</0> abc abc xyz"
1362 "abc" Z2 "abc <0>abc</0> abc xyz"
1363 "abc" Z3 "abc abc <0>abc</0> xyz"
1364 "abc" z4 "abc abc abc xyz"
1365
1366 # Random debugging, Temporary
1367 #
1368
1369 "This is a string with (?:one |two |three )endings" "<0>This is a string with two endings</0>"
1370
1371
1372 #
1373 # Regexps from http://www.regexlib.com
1374 #
1375 "^[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>"
1376 "^[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>"
1377 "^[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>"
1378 "^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$" "G111 1AA"
1379 "^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$" "X10 WW"
1380 "^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$" "DDD 5WW"
1381 #"^[\w\-]+(?:\.[\w\-]+)*@(?:[\w\-]+\.)+[a-zA-Z]{2,7}$" dG "<0>joe.tillis@unit.army.mil</0>" # TODO: \w in pattern
1382 #"^[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}$" G "<0>jack_rabbit@slims.com</0>" # TODO: \w in pattern
1383 #"^[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}$" G "<0>foo99@foo.co.uk</0>" # TODO: \w in pattern
1384 #"^[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}$" "find_the_mistake.@foo.org" # TODO: \w in pattern
1385 #"^[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}$" ".prefix.@some.net"
1386 "^([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>"
1387 "^([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>"
1388 "^([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>"
1389 "^([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"
1390 "^([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"
1391 "^([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"
1392 "^\d{1,2}\/\d{1,2}\/\d{4}$" G "<0>4/1/2001</0>"
1393 "^\d{1,2}\/\d{1,2}\/\d{4}$" G "<0>12/12/2001</0>"
1394 "^\d{1,2}\/\d{1,2}\/\d{4}$" G "<0>55/5/3434</0>"
1395 "^\d{1,2}\/\d{1,2}\/\d{4}$" "1/1/01"
1396 "^\d{1,2}\/\d{1,2}\/\d{4}$" "12 Jan 01"
1397 "^\d{1,2}\/\d{1,2}\/\d{4}$" "1-1-2001"
1398 "^(?:(?:(?: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>"
1399 "^(?:(?:(?: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>"
1400 "^(?:(?:(?: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>"
1401 "^(?:(?:(?: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"
1402 "^(?:(?:(?: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"
1403 "^(?:(?:(?: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"
1404 "^(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>"
1405 "^(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>"
1406 "^(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>"
1407 "^(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"
1408 "^(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"
1409 "^(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"
1410 "(AUX|PRN|NUL|COM\d|LPT\d)+\s*$" G "<0>COM1</0>"
1411 "(AUX|PRN|NUL|COM\d|LPT\d)+\s*$" G "<0>AUX</0>"
1412 "(AUX|PRN|NUL|COM\d|LPT\d)+\s*$" G "<0>LPT1</0>"
1413 "(AUX|PRN|NUL|COM\d|LPT\d)+\s*$" "image.jpg"
1414 "(AUX|PRN|NUL|COM\d|LPT\d)+\s*$" "index.html"
1415 "(AUX|PRN|NUL|COM\d|LPT\d)+\s*$" "readme.txt"
1416 "^(?:(?: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>"
1417 "^(?:(?: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>"
1418 "^(?:(?: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>"
1419 "^(?:(?: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"
1420 "^(?:(?: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"
1421 "^(?:(?: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"
1422 "^(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>"
1423 "^(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>"
1424 "^(user=([a-z0-9]+,)*(([a-z0-9]+){1});)?(group=([a-z0-9]+,)*(([a-z0-9]+){1});)?(level=[0-9]+;)?$" "user=foo"
1425 "^(user=([a-z0-9]+,)*(([a-z0-9]+){1});)?(group=([a-z0-9]+,)*(([a-z0-9]+){1});)?(level=[0-9]+;)?$" "blahh"
1426 "^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$" G "<0>(+44)(0)20-12341234</0>"
1427 "^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$" G "<0>02012341234</0>"
1428 "^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$" G "<0>+44 (0) 1234-1234</0>"
1429 "^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$" "(44+)020-12341234"
1430 "^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$" "12341234(+020)"
1431 "\b(\w+)\s+\1\b" G "<0>Tell the the preacher</0>"
1432 "\b(\w+)\s+\1\b" G "<0>some some</0>"
1433 "\b(\w+)\s+\1\b" G "<0>hubba hubba</0>"
1434 "\b(\w+)\s+\1\b" "once an annual report"
1435 "\b(\w+)\s+\1\b" "mandate dated submissions"
1436 "\b(\w+)\s+\1\b" "Hubba hubba"
1437 "(^\+[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>"
1438 "(^\+[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>"
1439 "(^\+[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>"
1440 "(^\+[0-9]{2}|^\+[0-9]{2}\(0\)|^\(\+[0-9]{2}\)\(0\)|^00[0-9]{2}|^0)([0-9]{9}$|[0-9\-\s]{10}$)" "+3123525667788999"
1441 "(^\+[0-9]{2}|^\+[0-9]{2}\(0\)|^\(\+[0-9]{2}\)\(0\)|^00[0-9]{2}|^0)([0-9]{9}$|[0-9\-\s]{10}$)" "3123525667788"
1442 "(^\+[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"
1443 "^[-+]?\d*\.?\d*$" G "<0>123</0>"
1444 "^[-+]?\d*\.?\d*$" G "<0>+3.14159</0>"
1445 "^[-+]?\d*\.?\d*$" G "<0>-3.14159</0>"
1446 "^[-+]?\d*\.?\d*$" "abc"
1447 "^[-+]?\d*\.?\d*$" "3.4.5"
1448 "^[-+]?\d*\.?\d*$" "$99.95"
1449 "^\$?([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>"
1450 "^\$?([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>"
1451 "^\$?([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>"
1452 "^\$?([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"
1453 "^\$?([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"
1454 "^[A-Z]{2}[0-9]{6}[A-DFM]{1}$" G "<0>AB123456D</0>"
1455 "^[A-Z]{2}[0-9]{6}[A-DFM]{1}$" G "<0>AB123456F</0>"
1456 "^[A-Z]{2}[0-9]{6}[A-DFM]{1}$" G "<0>AB123456M</0>"
1457 "^[A-Z]{2}[0-9]{6}[A-DFM]{1}$" "AB123456E"
1458 "^[A-Z]{2}[0-9]{6}[A-DFM]{1}$" "ab123456d"
1459 #"(http|ftp|https):\/\/[\w]+(.[\w]+)([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?" G "<0>http://regxlib.com/Default.aspx</0>" # TODO: \w in pattern
1460 #"(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
1461 #"(http|ftp|https):\/\/[\w]+(.[\w]+)([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?" "www.yahoo.com" # TODO: \w in pattern
1462 "^[0-9]{4}\s{0,1}[a-zA-Z]{2}$" G "<0>2034AK</0>"
1463 "^[0-9]{4}\s{0,1}[a-zA-Z]{2}$" G "<0>2034 AK</0>"
1464 "^[0-9]{4}\s{0,1}[a-zA-Z]{2}$" G "<0>2034 ak</0>"
1465 "^[0-9]{4}\s{0,1}[a-zA-Z]{2}$" "2034 AK"
1466 "^[0-9]{4}\s{0,1}[a-zA-Z]{2}$" "321321 AKSSAA"
1467 "((\d{2})|(\d))\/((\d{2})|(\d))\/((\d{4})|(\d{2}))" G "<0>4/5/91</0>"
1468 "((\d{2})|(\d))\/((\d{2})|(\d))\/((\d{4})|(\d{2}))" G "<0>04/5/1991</0>"
1469 "((\d{2})|(\d))\/((\d{2})|(\d))\/((\d{4})|(\d{2}))" G "<0>4/05/89</0>"
1470 "((\d{2})|(\d))\/((\d{2})|(\d))\/((\d{4})|(\d{2}))" "4/5/1"
1471 #"(^|\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.
1472 "(^|\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>"
1473 "(^|\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>"
1474 "(^|\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"
1475 "(^|\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"
1476 "(^|\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"
1477 "^\d{3}\s?\d{3}$" G "<0>400 099</0>"
1478 "^\d{3}\s?\d{3}$" G "<0>400099</0>"
1479 "^\d{3}\s?\d{3}$" G "<0>400050</0>"
1480 "^\d{3}\s?\d{3}$" "2345678"
1481 "^\d{3}\s?\d{3}$" "12345"
1482 "^\d{3}\s?\d{3}$" "asdf"
1483 "^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$" G "<0>(111) 222-3333</0>"
1484 "^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$" G "<0>1112223333</0>"
1485 "^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$" G "<0>111-222-3333</0>"
1486 "^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$" "11122223333"
1487 "^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$" "11112223333"
1488 "^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$" "11122233333"
1489 "^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$" G "<0>#00ccff</0>"
1490 "^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$" G "<0>#039</0>"
1491 "^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$" G "<0>ffffcc</0>"
1492 "^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$" "blue"
1493 "^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$" "0x000000"
1494 "^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$" "#ff000"
1495 "^([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>"
1496 "^([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>"
1497 "^([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>"
1498 "^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$" "01:23:45:67:89:ab:cd"
1499 "^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$" "01:23:45:67:89:Az"
1500 "^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$" "01:23:45:56:"
1501 "^(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>"
1502 "^(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>"
1503 "^(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>"
1504 "^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+\&%\$#\=~])*$" "www.blah.com"
1505 "^(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!"
1506 "^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+\&%\$#\=~])*$" "ftp://blah_underscore/[nope]"
1507 "^(([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>"
1508 "^(([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>"
1509 "^(([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"
1510 "^(([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"
1511 "^(([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"
1512 "^[0-9](\.[0-9]+)?$" G "<0>1.2345</0>"
1513 "^[0-9](\.[0-9]+)?$" G "<0>0.00001</0>"
1514 "^[0-9](\.[0-9]+)?$" G "<0>7</0>"
1515 "^[0-9](\.[0-9]+)?$" "12.2"
1516 "^[0-9](\.[0-9]+)?$" "1.10.1"
1517 "^[0-9](\.[0-9]+)?$" "15.98"
1518 "^(?:[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>"
1519 "^(?:[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>"
1520 "^(?:[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>"
1521 "^(?:[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"
1522 "^(?:[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"
1523 "^(?:[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"
1524 "^[-+]?[0-9]+[.]?[0-9]*([eE][-+]?[0-9]+)?$" G "<0>123</0>"
1525 "^[-+]?[0-9]+[.]?[0-9]*([eE][-+]?[0-9]+)?$" G "<0>-123.35</0>"
1526 "^[-+]?[0-9]+[.]?[0-9]*([eE][-+]?[0-9]+)?$" G "<0>-123.35e-2</0>"
1527 "^[-+]?[0-9]+[.]?[0-9]*([eE][-+]?[0-9]+)?$" "abc"
1528 "^[-+]?[0-9]+[.]?[0-9]*([eE][-+]?[0-9]+)?$" "123.32e"
1529 "^[-+]?[0-9]+[.]?[0-9]*([eE][-+]?[0-9]+)?$" "123.32.3"
1530 "^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$" G "<0>T.F. Johnson</0>"
1531 "^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$" G "<0>John O'Neil</0>"
1532 "^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$" G "<0>Mary-Kate Johnson</0>"
1533 "^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$" "sam_johnson"
1534 "^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$" "Joe--Bob Jones"
1535 "^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$" "dfjsd0rd"
1536 "^(20|21|22|23|[0-1]\d)[0-5]\d$" G "<0>1200</0>"
1537 "^(20|21|22|23|[0-1]\d)[0-5]\d$" G "<0>1645</0>"
1538 "^(20|21|22|23|[0-1]\d)[0-5]\d$" G "<0>2359</0>"
1539 "^(20|21|22|23|[0-1]\d)[0-5]\d$" "2400"
1540 "^(20|21|22|23|[0-1]\d)[0-5]\d$" "asbc"
1541 "^(20|21|22|23|[0-1]\d)[0-5]\d$" "12:45"
1542 /<[^>]*\n?.*=("|')?(.*\.jpg)("|')?.*\n?[^<]*>/ G '<0><td background="../img/img.jpg" ></0>'
1543 /<[^>]*\n?.*=("|')?(.*\.jpg)("|')?.*\n?[^<]*>/ G "<0><img src=img.jpg ></0>"
1544 /<[^>]*\n?.*=("|')?(.*\.jpg)("|')?.*\n?[^<]*>/ G "<0><img src='img.jpg'></0>"
1545 /<[^>]*\n?.*=("|')?(.*\.jpg)("|')?.*\n?[^<]*>/ "= img.jpg"
1546 /<[^>]*\n?.*=("|')?(.*\.jpg)("|')?.*\n?[^<]*>/ "img.jpg"
1547 "^(\d{5}-\d{4}|\d{5})$|^([a-zA-Z]\d[a-zA-Z] \d[a-zA-Z]\d)$" G "<0>78754</0>"
1548 "^(\d{5}-\d{4}|\d{5})$|^([a-zA-Z]\d[a-zA-Z] \d[a-zA-Z]\d)$" G "<0>78754-1234</0>"
1549 "^(\d{5}-\d{4}|\d{5})$|^([a-zA-Z]\d[a-zA-Z] \d[a-zA-Z]\d)$" G "<0>G3H 6A3</0>"
1550 "^(\d{5}-\d{4}|\d{5})$|^([a-zA-Z]\d[a-zA-Z] \d[a-zA-Z]\d)$" "78754-12aA"
1551 "^(\d{5}-\d{4}|\d{5})$|^([a-zA-Z]\d[a-zA-Z] \d[a-zA-Z]\d)$" "7875A"
1552 "^(\d{5}-\d{4}|\d{5})$|^([a-zA-Z]\d[a-zA-Z] \d[a-zA-Z]\d)$" "g3h6a3"
1553 #"^([\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
1554 #"^([\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>"
1555 #"^([\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
1556 #"^([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))$" "bob@com" # TODO: \w in pattern
1557 #"^([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))$" "bob.jones@some.where" # TODO: \w in pattern
1558 #"^([\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
1559 #"^(([-\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
1560 #"^(([-\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
1561 #"^(([-\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
1562 #"^(([-\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
1563 #"^(([-\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
1564 #"^(([-\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
1565 "^[A-Za-z]{1,2}[0-9A-Za-z]{1,2}[ ]?[0-9]{0,1}[A-Za-z]{2}$" G "<0>SW112LE</0>"
1566 "^[A-Za-z]{1,2}[0-9A-Za-z]{1,2}[ ]?[0-9]{0,1}[A-Za-z]{2}$" G "<0>SW11 2LE</0>"
1567 "^[A-Za-z]{1,2}[0-9A-Za-z]{1,2}[ ]?[0-9]{0,1}[A-Za-z]{2}$" G "<0>CR05LE</0>"
1568 "^[A-Za-z]{1,2}[0-9A-Za-z]{1,2}[ ]?[0-9]{0,1}[A-Za-z]{2}$" "12CR0LE"
1569 "^[A-Za-z]{1,2}[0-9A-Za-z]{1,2}[ ]?[0-9]{0,1}[A-Za-z]{2}$" "12CR 0LE"
1570 "^[A-Za-z]{1,2}[0-9A-Za-z]{1,2}[ ]?[0-9]{0,1}[A-Za-z]{2}$" "SWLE05"
1571 "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>"
1572 "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>"
1573 "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>"
1574 "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"
1575 "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"
1576 "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"
1577 "^((?: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>"
1578 "^((?: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>"
1579 "^((?: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>"
1580 "^((?: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"
1581 "^((((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>"
1582 "^((((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>"
1583 "^((((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>"
1584 "^((((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"
1585 "^((((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"
1586 "^((((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"
1587 #"^(?=[^\&])(?:(?<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
1588 #"^(?=[^\&])(?:(?<scheme>[^:/?#]+):)?(?://(?<authority>[^/?#]*))?(?<path>[^?#]*)(?:\?(?<query>[^#]*))?(?:#(?<fragment>.*))?" "&" # out of context, can't work stand-alone
1589 "^[-+]?\d+(\.\d+)?$" G "<0>123</0>"
1590 "^[-+]?\d+(\.\d+)?$" G "<0>-123.45</0>"
1591 "^[-+]?\d+(\.\d+)?$" G "<0>+123.56</0>"
1592 "^[-+]?\d+(\.\d+)?$" "123x"
1593 "^[-+]?\d+(\.\d+)?$" ".123"
1594 "^[-+]?\d+(\.\d+)?$" "-123."
1595 "^(\d{4}[- ]){3}\d{4}|\d{16}$" G "<0>1234-1234-1234-1234</0>"
1596 "^(\d{4}[- ]){3}\d{4}|\d{16}$" G "<0>1234 1234 1234 1234</0>"
1597 "^(\d{4}[- ]){3}\d{4}|\d{16}$" G "<0>1234123412341234</0>"
1598 "^(\d{4}[- ]){3}\d{4}|\d{16}$" "Visa"
1599 "^(\d{4}[- ]){3}\d{4}|\d{16}$" "1234"
1600 "^(\d{4}[- ]){3}\d{4}|\d{16}$" "123-1234-12345"
1601 "^((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>"
1602 "^((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>"
1603 "^((4\d{3})|(5[1-5]\d{2})|(6011))-?\d{4}-?\d{4}-?\d{4}|3[4,7]\d{13}$" G "<0>341111111111111</0>"
1604 "^((4\d{3})|(5[1-5]\d{2})|(6011))-?\d{4}-?\d{4}-?\d{4}|3[4,7]\d{13}$" "4111-111-111-111"
1605 "^((4\d{3})|(5[1-5]\d{2})|(6011))-?\d{4}-?\d{4}-?\d{4}|3[4,7]\d{13}$" "3411-1111-1111-111"
1606 "^((4\d{3})|(5[1-5]\d{2})|(6011))-?\d{4}-?\d{4}-?\d{4}|3[4,7]\d{13}$" "Visa"
1607 "^[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>"
1608 "^[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>"
1609 "^[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"
1610 "^[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}"
1611 "^[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}$" "AAAAAAAAAAAAAAAAA"
1612 "^[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"
1613 "(^(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>"
1614 "(^(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>"
1615 "(^(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>"
1616 "(^(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"
1617 "(^(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"
1618 "(^(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"
1619 #'\[link="(?<link>((.|\n)*?))"\](?<text>((.|\n)*?))\[\/link\]' G '<0>[link="http://www.yahoo.com"]Yahoo[/link]</0>' #named capture
1620 #'\[link="(?<link>((.|\n)*?))"\](?<text>((.|\n)*?))\[\/link\]' "[link]http://www.yahoo.com[/link]" #named capture
1621 #'\[link="(?<link>((.|\n)*?))"\](?<text>((.|\n)*?))\[\/link\]' "[link=http://www.yahoo.com]Yahoo[/link]" #named capture
1622 "^[a-zA-Z0-9]+$" G "<0>10a</0>"
1623 "^[a-zA-Z0-9]+$" G "<0>ABC</0>"
1624 "^[a-zA-Z0-9]+$" G "<0>A3fg</0>"
1625 "^[a-zA-Z0-9]+$" "45.3"
1626 "^[a-zA-Z0-9]+$" "this or that"
1627 "^[a-zA-Z0-9]+$" "$23"
1628 "((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}" G "<0>(123) 456-7890</0>"
1629 "((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}" G "<0>123-456-7890</0>"
1630 "((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}" "1234567890"
1631 "^[a-zA-Z]\w{3,14}$" G "<0>abcd</0>"
1632 "^[a-zA-Z]\w{3,14}$" G "<0>aBc45DSD_sdf</0>"
1633 "^[a-zA-Z]\w{3,14}$" G "<0>password</0>"
1634 "^[a-zA-Z]\w{3,14}$" "afv"
1635 "^[a-zA-Z]\w{3,14}$" "1234"
1636 "^[a-zA-Z]\w{3,14}$" "reallylongpassword"
1637 "^[A-Z]{1,2}[1-9][0-9]?[A-Z]? [0-9][A-Z]{2,}|GIR 0AA$" G "<0>G1 1AA </0>"
1638 "^[A-Z]{1,2}[1-9][0-9]?[A-Z]? [0-9][A-Z]{2,}|GIR 0AA$" G "<0>GIR 0AA</0>"
1639 "^[A-Z]{1,2}[1-9][0-9]?[A-Z]? [0-9][A-Z]{2,}|GIR 0AA$" G "<0>SW1 1ZZ</0>"
1640 "^[A-Z]{1,2}[1-9][0-9]?[A-Z]? [0-9][A-Z]{2,}|GIR 0AA$" "BT01 3RT"
1641 "^[A-Z]{1,2}[1-9][0-9]?[A-Z]? [0-9][A-Z]{2,}|GIR 0AA$" "G111 1AA"
1642 "^0[23489]{1}(\-)?[^0\D]{1}\d{6}$" G "<0>03-6106666</0>"
1643 "^0[23489]{1}(\-)?[^0\D]{1}\d{6}$" G "<0>036106666</0>"
1644 "^0[23489]{1}(\-)?[^0\D]{1}\d{6}$" G "<0>02-5523344</0>"
1645 "^0[23489]{1}(\-)?[^0\D]{1}\d{6}$" "00-6106666"
1646 "^0[23489]{1}(\-)?[^0\D]{1}\d{6}$" "03-0106666"
1647 "^0[23489]{1}(\-)?[^0\D]{1}\d{6}$" "02-55812346"
1648 "^0(5[012345678]|6[47]){1}(\-)?[^0\D]{1}\d{5}$" G "<0>050-346634</0>"
1649 "^0(5[012345678]|6[47]){1}(\-)?[^0\D]{1}\d{5}$" G "<0>058633633</0>"
1650 "^0(5[012345678]|6[47]){1}(\-)?[^0\D]{1}\d{5}$" G "<0>064-228226</0>"
1651 "^0(5[012345678]|6[47]){1}(\-)?[^0\D]{1}\d{5}$" "059-336622"
1652 "^0(5[012345678]|6[47]){1}(\-)?[^0\D]{1}\d{5}$" "064-022663"
1653 "^0(5[012345678]|6[47]){1}(\-)?[^0\D]{1}\d{5}$" "0545454545"
1654 "^([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>"
1655 "^([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>"
1656 "^([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>"
1657 "^([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"
1658 "^([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"
1659 "^([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"
1660 "@{2}((\S)+)@{2}" G "<0>@@test@@</0>"
1661 "@{2}((\S)+)@{2}" G "<0>@@name@@</0>"
1662 "@{2}((\S)+)@{2}" G "<0>@@2342@@</0>"
1663 "@{2}((\S)+)@{2}" "@test@"
1664 "@{2}((\S)+)@{2}" "@@na me@@"
1665 "@{2}((\S)+)@{2}" "@@ name@@"
1666 "([0-1][0-9]|2[0-3]):[0-5][0-9]" G "<0>00:00</0>"
1667 "([0-1][0-9]|2[0-3]):[0-5][0-9]" G "<0>13:59</0>"
1668 "([0-1][0-9]|2[0-3]):[0-5][0-9]" G "<0>23:59</0>"
1669 "([0-1][0-9]|2[0-3]):[0-5][0-9]" "24:00"
1670 "([0-1][0-9]|2[0-3]):[0-5][0-9]" "23:60"
1671 "^[+-]?([0-9]*\.?[0-9]+|[0-9]+\.?[0-9]*)([eE][+-]?[0-9]+)?$" G "<0>23</0>"
1672 "^[+-]?([0-9]*\.?[0-9]+|[0-9]+\.?[0-9]*)([eE][+-]?[0-9]+)?$" G "<0>-17.e23</0>"
1673 "^[+-]?([0-9]*\.?[0-9]+|[0-9]+\.?[0-9]*)([eE][+-]?[0-9]+)?$" G "<0>+.23e+2</0>"
1674 "^[+-]?([0-9]*\.?[0-9]+|[0-9]+\.?[0-9]*)([eE][+-]?[0-9]+)?$" "+.e2"
1675 "^[+-]?([0-9]*\.?[0-9]+|[0-9]+\.?[0-9]*)([eE][+-]?[0-9]+)?$" "23.17.5"
1676 "^[+-]?([0-9]*\.?[0-9]+|[0-9]+\.?[0-9]*)([eE][+-]?[0-9]+)?$" "10e2.0"
1677 "^([1-zA-Z0-1@.\s ]{1,255})$" G "<0>email@email.com</0>"
1678 "^([1-zA-Z0-1@.\s ]{1,255})$" G "<0>My Name</0>"
1679 "^([1-zA-Z0-1@.\s ]{1,255})$" G "<0>asdf12df</0>"
1680 "^([1-zA-Z0-1@.\s ]{1,255})$" "‘,\*&$<>"
1681 "^([1-zA-Z0-1@.\s ]{1,255})$" "1001' string"
1682 "^((0[1-9])|(1[0-2]))\/(\d{4})$" G "<0>12/2002</0>"
1683 "^((0[1-9])|(1[0-2]))\/(\d{4})$" G "<0>11/1900</0>"
1684 "^((0[1-9])|(1[0-2]))\/(\d{4})$" G "<0>02/1977</0>"
1685 "^((0[1-9])|(1[0-2]))\/(\d{4})$" "1/1977"
1686 "^((0[1-9])|(1[0-2]))\/(\d{4})$" "00/000"
1687 "^((0[1-9])|(1[0-2]))\/(\d{4})$" "15/2002"
1688 "^\(\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>"
1689 "^\(\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>"
1690 "^\(\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>"
1691 "^\(\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"
1692 "^\(\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"
1693 "^\(\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"
1694 "(?:\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>"
1695 "(?:\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>"
1696 "(?:\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>"
1697 "(?:\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"
1698 "(?:\d|I{1,3})?\s?\w{2,}\.?\s*\d{1,}\:\d{1,}-?,?\d{0,2}(?:,\d{0,2}){0,2}" "2nd Samuel 2"
1699 "(\[[Ii][Mm][Gg]\])(\S+?)(\[\/[Ii][Mm][Gg]\])" G "<0>[IMG]http://bleh.jpg[/IMG]</0>"
1700 "(\[[Ii][Mm][Gg]\])(\S+?)(\[\/[Ii][Mm][Gg]\])" G "<0>[ImG]bleh[/imG]</0>"
1701 "(\[[Ii][Mm][Gg]\])(\S+?)(\[\/[Ii][Mm][Gg]\])" G "<0>[img]ftp://login:pass@bleh.gif[/img]</0>"
1702 "(\[[Ii][Mm][Gg]\])(\S+?)(\[\/[Ii][Mm][Gg]\])" '<img src="bleh.jpg">'
1703 "^([0-9]{1,2})[./-]+([0-9]{1,2})[./-]+([0-9]{2}|[0-9]{4})$" G "<0>10/03/1979</0>"
1704 "^([0-9]{1,2})[./-]+([0-9]{1,2})[./-]+([0-9]{2}|[0-9]{4})$" G "<0>1-1-02</0>"
1705 "^([0-9]{1,2})[./-]+([0-9]{1,2})[./-]+([0-9]{2}|[0-9]{4})$" G "<0>01.1.2003</0>"
1706 "^([0-9]{1,2})[./-]+([0-9]{1,2})[./-]+([0-9]{2}|[0-9]{4})$" "10/03/197"
1707 "^([0-9]{1,2})[./-]+([0-9]{1,2})[./-]+([0-9]{2}|[0-9]{4})$" "01-02-003"
1708 "^([0-9]{1,2})[./-]+([0-9]{1,2})[./-]+([0-9]{2}|[0-9]{4})$" "01 02 03"
1709 #"^(?(^00000(|-0000))|(\d{5}(|-\d{4})))$" G "<0>12345</0>" # No Conditionals?
1710 #"^(?(^00000(|-0000))|(\d{5}(|-\d{4})))$" G "<0>12345-6789</0>" # No Conditionals?
1711 #"^(?(^00000(|-0000))|(\d{5}(|-\d{4})))$" "00000" # No Conditionals?
1712 #"^(?(^00000(|-0000))|(\d{5}(|-\d{4})))$" "00000-0000" # No Conditionals?
1713 #"^(?(^00000(|-0000))|(\d{5}(|-\d{4})))$" "a4650-465s" # No Conditionals?
1714 "^((0?[1-9])|((1|2)[0-9])|30|31)$" G "<0>01</0>"
1715 "^((0?[1-9])|((1|2)[0-9])|30|31)$" G "<0>12</0>"
1716 "^((0?[1-9])|((1|2)[0-9])|30|31)$" G "<0>31</0>"
1717 "^((0?[1-9])|((1|2)[0-9])|30|31)$" "123"
1718 "^((0?[1-9])|((1|2)[0-9])|30|31)$" "32"
1719 "^((0?[1-9])|((1|2)[0-9])|30|31)$" "abc"
1720 "^([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>"
1721 "^([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>"
1722 "^([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>"
1723 "^([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"
1724 "^([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"
1725 "^([0-1]([\s\-./\\])?)?(\(?[2-9]\d{2}\)?|[2-9]\d{3})([\s\-./\\])?(\d{3}([\s\-./\\])?\d{4}|[a-zA-Z0-9]{7})$" "11231321131"
1726 "^([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>"
1727 "^([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>"
1728 "^([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>"
1729 "^([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"
1730 "^([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"
1731 "^([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"
1732 "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{4,8}$" G "<0>asD1</0>"
1733 "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{4,8}$" G "<0>asDF1234</0>"
1734 "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{4,8}$" G "<0>ASPgo123</0>"
1735 "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{4,8}$" "asdf"
1736 "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{4,8}$" "1234"
1737 "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{4,8}$" "ASDF12345"
1738 "^([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>"
1739 "^([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>"
1740 "^([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>"
1741 "^([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"
1742 "^([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"
1743 "^([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"
1744 "^(([0]?[1-9]|1[0-2])(:)([0-5][0-9]))$" G "<0>09:00</0>"
1745 "^(([0]?[1-9]|1[0-2])(:)([0-5][0-9]))$" G "<0>9:00</0>"
1746 "^(([0]?[1-9]|1[0-2])(:)([0-5][0-9]))$" G "<0>11:35</0>"
1747 "^(([0]?[1-9]|1[0-2])(:)([0-5][0-9]))$" "13:00"
1748 "^(([0]?[1-9]|1[0-2])(:)([0-5][0-9]))$" "9.00"
1749 "^(([0]?[1-9]|1[0-2])(:)([0-5][0-9]))$" "6:60"
1750 "^([1-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$" G "<0>1</0>"
1751 "^([1-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$" G "<0>108</0>"
1752 "^([1-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$" G "<0>255</0>"
1753 "^([1-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$" "01"
1754 "^([1-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$" "256"
1755 "^((((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>"
1756 "^((((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>"
1757 "^((((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>"
1758 "^((((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"
1759 "^((((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"
1760 "^((((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"
1761 "^[A-Za-z]{2}[0-9]{6}[A-Za-z]{1}$" G "<0>SP939393H</0>"
1762 "^[A-Za-z]{2}[0-9]{6}[A-Za-z]{1}$" G "<0>PX123456D</0>"
1763 "^[A-Za-z]{2}[0-9]{6}[A-Za-z]{1}$" G "<0>SW355667G</0>"
1764 "^[A-Za-z]{2}[0-9]{6}[A-Za-z]{1}$" "12SP9393H"
1765 "^[A-Za-z]{2}[0-9]{6}[A-Za-z]{1}$" "S3P93930D"
1766 "^[A-Za-z]{2}[0-9]{6}[A-Za-z]{1}$" "11223344SP00ddSS"
1767 "(^0[78][2347][0-9]{7})" G "<0>0834128458</0>"
1768 "(^0[78][2347][0-9]{7})" G "<0>0749526308</0>"
1769 "(^0[78][2347][0-9]{7})" "0861212308"
1770 "(^0[78][2347][0-9]{7})" "0892549851"
1771 "^([A-HJ-TP-Z]{1}\d{4}[A-Z]{3}|[a-z]{1}\d{4}[a-hj-tp-z]{3})$" G "<0>C1406HHA</0>"
1772 "^([A-HJ-TP-Z]{1}\d{4}[A-Z]{3}|[a-z]{1}\d{4}[a-hj-tp-z]{3})$" G "<0>A4126AAB</0>"
1773 "^([A-HJ-TP-Z]{1}\d{4}[A-Z]{3}|[a-z]{1}\d{4}[a-hj-tp-z]{3})$" G "<0>c1406hha</0>"
1774 "^([A-HJ-TP-Z]{1}\d{4}[A-Z]{3}|[a-z]{1}\d{4}[a-hj-tp-z]{3})$" "c1406HHA"
1775 "^([A-HJ-TP-Z]{1}\d{4}[A-Z]{3}|[a-z]{1}\d{4}[a-hj-tp-z]{3})$" "4126"
1776 "^([A-HJ-TP-Z]{1}\d{4}[A-Z]{3}|[a-z]{1}\d{4}[a-hj-tp-z]{3})$" "C1406hha"
1777 "^(((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>"
1778 "^(((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>"
1779 "^(((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>"
1780 "^(((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"
1781 "^(((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"
1782 "^(((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"
1783 "^([\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>"
1784 "^([\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>"
1785 "^([\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>"
1786 "^([\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"
1787 "^([\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"
1788 "^([\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"
1789 "/\*[\d\D]*?\*/" G "<0>/* my comment */</0>"
1790 "/\*[\d\D]*?\*/" G "<0>/* my multiline comment */</0>"
1791 "/\*[\d\D]*?\*/" G "<0>/* my nested comment */</0>"
1792 "/\*[\d\D]*?\*/" "*/ anything here /*"
1793 "/\*[\d\D]*?\*/" "anything between 2 seperate comments"
1794 "/\*[\d\D]*?\*/" "\* *\"
1795 "/\*[\p{N}\P{N}]*?\*/" G "<0>/* my comment */</0>"
1796 "/\*[\p{N}\P{N}]*?\*/" G "<0>/* my multiline comment */</0>"
1797 "/\*[\p{N}\P{N}]*?\*/" G "<0>/* my nested comment */</0>"
1798 "/\*[\p{N}\P{N}]*?\*/" "*/ anything here /*"
1799 "/\*[\p{N}\P{N}]*?\*/" "anything between 2 seperate comments"
1800 "/\*[\p{N}\P{N}]*?\*/" "\* *\"
1801 "((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>"
1802 "((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>"
1803 "((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>"
1804 "((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"
1805 "((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"
1806 "((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"
1807 '^(([^<>;()\[\]\\.,;:@"]+(\.[^<>()\[\]\\.,;:@"]+)*)|(".+"))@((([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>"
1808 '^(([^<>;()\[\]\\.,;:@"]+(\.[^<>()\[\]\\.,;:@"]+)*)|(".+"))@((([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>"
1809 '^(([^<>;()\[\]\\.,;:@"]+(\.[^<>()\[\]\\.,;:@"]+)*)|(".+"))@((([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@."
1810 "^\d{9}[\d|X]$" G "<0>1234123412</0>"
1811 "^\d{9}[\d|X]$" G "<0>123412341X</0>"
1812 "^\d{9}[\d|X]$" "not an isbn"
1813 "^\d{9}(\d|X)$" G "<0>1234123412</0>"
1814 "^\d{9}(\d|X)$" G "<0>123412341X</0>"
1815 "^\d{9}(\d|X)$" "not an isbn"
1816 "^(([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>"
1817 "^(([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>"
1818 "^(([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>"
1819 "^(([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"
1820 "^(([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"
1821 "^(([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"
1822 "^\d*\.?((25)|(50)|(5)|(75)|(0)|(00))?$" G "<0>0.25</0>"
1823 "^\d*\.?((25)|(50)|(5)|(75)|(0)|(00))?$" G "<0>.75</0>"
1824 "^\d*\.?((25)|(50)|(5)|(75)|(0)|(00))?$" G "<0>123.50</0>"
1825 "^\d*\.?((25)|(50)|(5)|(75)|(0)|(00))?$" ".77"
1826 "^\d*\.?((25)|(50)|(5)|(75)|(0)|(00))?$" "1.435"
1827 "^(s-|S-){0,1}[0-9]{3}\s?[0-9]{2}$" G "<0>12345</0>"
1828 "^(s-|S-){0,1}[0-9]{3}\s?[0-9]{2}$" G "<0>932 68</0>"
1829 "^(s-|S-){0,1}[0-9]{3}\s?[0-9]{2}$" G "<0>S-621 46</0>"
1830 "^(s-|S-){0,1}[0-9]{3}\s?[0-9]{2}$" "5367"
1831 "^(s-|S-){0,1}[0-9]{3}\s?[0-9]{2}$" "425611"
1832 "^(s-|S-){0,1}[0-9]{3}\s?[0-9]{2}$" "31 545"
1833 "^\d{5}(-\d{4})?$" G "<0>48222</0>"
1834 "^\d{5}(-\d{4})?$" G "<0>48222-1746</0>"
1835 "^\d{5}(-\d{4})?$" "4632"
1836 "^\d{5}(-\d{4})?$" "Blake"
1837 "^\d{5}(-\d{4})?$" "37333-32"
1838 '^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)[^\x00-\x1f\\?*:\";|/]+$' G "<0>test.txt</0>"
1839 '^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)[^\x00-\x1f\\?*:\";|/]+$' G "<0>test.jpg.txt</0>"
1840 '^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)[^\x00-\x1f\\?*:\";|/]+$' G "<0>a&b c.bmp</0>"
1841 '^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)[^\x00-\x1f\\?*:\";|/]+$' "CON"
1842 '^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)[^\x00-\x1f\\?*:\";|/]+$' ".pdf"
1843 '^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)[^\x00-\x1f\\?*:\";|/]+$' "test:2.pdf"
1844 "^(\d{1,3}'(\d{3}')*\d{3}(\.\d{1,3})?|\d{1,3}(\.\d{3})?)$" G "<0>1'235.140</0>"
1845 "^(\d{1,3}'(\d{3}')*\d{3}(\.\d{1,3})?|\d{1,3}(\.\d{3})?)$" G "<0>1'222'333.120</0>"
1846 "^(\d{1,3}'(\d{3}')*\d{3}(\.\d{1,3})?|\d{1,3}(\.\d{3})?)$" G "<0>456</0>"
1847 "^(\d{1,3}'(\d{3}')*\d{3}(\.\d{1,3})?|\d{1,3}(\.\d{3})?)$" "1234.500"
1848 "^(\d{1,3}'(\d{3}')*\d{3}(\.\d{1,3})?|\d{1,3}(\.\d{3})?)$" "78'45.123"
1849 "^(\d{1,3}'(\d{3}')*\d{3}(\.\d{1,3})?|\d{1,3}(\.\d{3})?)$" "123,0012"
1850 "^[a-zA-Z][0-9][a-zA-Z]\s?[0-9][a-zA-Z][0-9]$" G "<0>T2p 3c7</0>"
1851 "^[a-zA-Z][0-9][a-zA-Z]\s?[0-9][a-zA-Z][0-9]$" G "<0>T3P3c7</0>"
1852 "^[a-zA-Z][0-9][a-zA-Z]\s?[0-9][a-zA-Z][0-9]$" G "<0>T2P 3C7</0>"
1853 "^[a-zA-Z][0-9][a-zA-Z]\s?[0-9][a-zA-Z][0-9]$" "123456"
1854 "^[a-zA-Z][0-9][a-zA-Z]\s?[0-9][a-zA-Z][0-9]$" "3C7T2P"
1855 "^[a-zA-Z][0-9][a-zA-Z]\s?[0-9][a-zA-Z][0-9]$" "11T21RWW"
1856 "^\$[0-9]+(\.[0-9][0-9])?$" G "<0>$1.50</0>"
1857 "^\$[0-9]+(\.[0-9][0-9])?$" G "<0>$49</0>"
1858 "^\$[0-9]+(\.[0-9][0-9])?$" G "<0>$0.50</0>"
1859 "^\$[0-9]+(\.[0-9][0-9])?$" "1.5"
1860 "^\$[0-9]+(\.[0-9][0-9])?$" "$1.333"
1861 "^\$[0-9]+(\.[0-9][0-9])?$" "this $5.12 fails"
1862 "\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>"
1863 "\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>"
1864 "\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>"
1865 "\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"
1866 "\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"
1867 "\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"
1868 "((mailto\:|(news|(ht|f)tp(s?))\://){1}\S+)" G "<0>http://www.aspemporium.com</0>"
1869 "((mailto\:|(news|(ht|f)tp(s?))\://){1}\S+)" G "<0>mailto:dominionx@hotmail.com</0>"
1870 "((mailto\:|(news|(ht|f)tp(s?))\://){1}\S+)" G "<0>ftp://ftp.test.com</0>"
1871 "((mailto\:|(news|(ht|f)tp(s?))\://){1}\S+)" "www.aspemporium.com"
1872 "((mailto\:|(news|(ht|f)tp(s?))\://){1}\S+)" "dominionx@hotmail.com"
1873 "((mailto\:|(news|(ht|f)tp(s?))\://){1}\S+)" "bloggs"
1874 "\(([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>"
1875 "\(([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>"
1876 "\(([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>"
1877 "\(([0-9]{2}|0{1}((x|[0-9]){2}[0-9]{2}))\)\s*[0-9]{3,4}[- ]*[0-9]{4}" "12 123 1234"
1878 "\(([0-9]{2}|0{1}((x|[0-9]){2}[0-9]{2}))\)\s*[0-9]{3,4}[- ]*[0-9]{4}" "(012) 123/1234"
1879 "\(([0-9]{2}|0{1}((x|[0-9]){2}[0-9]{2}))\)\s*[0-9]{3,4}[- ]*[0-9]{4}" "(012) 123 12345"
1880 "^\w+[\w-\.]*\@\w+((-\w+)|(\w*))\.[a-z]{2,3}$" G "<0>bob-smith@foo.com</0>"
1881 "^\w+[\w-\.]*\@\w+((-\w+)|(\w*))\.[a-z]{2,3}$" G "<0>bob.smith@foo.com</0>"
1882 "^\w+[\w-\.]*\@\w+((-\w+)|(\w*))\.[a-z]{2,3}$" G "<0>bob_smith@foo.com</0>"
1883 "^\w+[\w-\.]*\@\w+((-\w+)|(\w*))\.[a-z]{2,3}$" "-smith@foo.com"
1884 "^\w+[\w-\.]*\@\w+((-\w+)|(\w*))\.[a-z]{2,3}$" ".smith@foo.com"
1885 "^\w+[\w-\.]*\@\w+((-\w+)|(\w*))\.[a-z]{2,3}$" "smith@foo_com"
1886 "^(?=.*\d).{4,8}$" G "<0>1234</0>"
1887 "^(?=.*\d).{4,8}$" G "<0>asdf1234</0>"
1888 "^(?=.*\d).{4,8}$" G "<0>asp123</0>"
1889 "^(?=.*\d).{4,8}$" "asdf"
1890 "^(?=.*\d).{4,8}$" "asdf12345"
1891 "^(?=.*\d).{4,8}$" "password"
1892 "[^A-Za-z0-9_@\.]|@{2,}|\.{5,}" G "<0>user name</0>"
1893 "[^A-Za-z0-9_@\.]|@{2,}|\.{5,}" G "<0>user#name</0>"
1894 "[^A-Za-z0-9_@\.]|@{2,}|\.{5,}" G "<0>.....</0>"
1895 "[^A-Za-z0-9_@\.]|@{2,}|\.{5,}" "User_Name1"
1896 "[^A-Za-z0-9_@\.]|@{2,}|\.{5,}" "username@foo.com"
1897 "[^A-Za-z0-9_@\.]|@{2,}|\.{5,}" "user.name@mail.foo.com"
1898 "^100$|^[0-9]{1,2}$|^[0-9]{1,2}\,[0-9]{1,3}$" G "<0>12,654</0>"
1899 "^100$|^[0-9]{1,2}$|^[0-9]{1,2}\,[0-9]{1,3}$" G "<0>1,987</0>"
1900 "^100$|^[0-9]{1,2}$|^[0-9]{1,2}\,[0-9]{1,3}$" "128,2"
1901 "^100$|^[0-9]{1,2}$|^[0-9]{1,2}\,[0-9]{1,3}$" "12,"
1902 "^(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>"
1903 "^(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."
1904 "^(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)"
1905 "^(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,"
1906 "(\d{1,3},(\d{3},)*\d{3}(\.\d{1,3})?|\d{1,3}(\.\d{3})?)$" G "<0>2&651.50</0>"
1907 "(\d{1,3},(\d{3},)*\d{3}(\.\d{1,3})?|\d{1,3}(\.\d{3})?)$" G "<0>987.895</0>"
1908 "(\d{1,3},(\d{3},)*\d{3}(\.\d{1,3})?|\d{1,3}(\.\d{3})?)$" "25$%787*"
1909 "\$[0-9]?[0-9]?[0-9]?((\,[0-9][0-9][0-9])*)?(\.[0-9][0-9]?)?$" G "<0>$1,456,983.00</0>"
1910 "\$[0-9]?[0-9]?[0-9]?((\,[0-9][0-9][0-9])*)?(\.[0-9][0-9]?)?$" G "<0>$1,700.07</0>"
1911 "\$[0-9]?[0-9]?[0-9]?((\,[0-9][0-9][0-9])*)?(\.[0-9][0-9]?)?$" G "<0>$68,944.23</0>"
1912 "\$[0-9]?[0-9]?[0-9]?((\,[0-9][0-9][0-9])*)?(\.[0-9][0-9]?)?$" "$20,86.93"
1913 "\$[0-9]?[0-9]?[0-9]?((\,[0-9][0-9][0-9])*)?(\.[0-9][0-9]?)?$" "$1098.84"
1914 "\$[0-9]?[0-9]?[0-9]?((\,[0-9][0-9][0-9])*)?(\.[0-9][0-9]?)?$" "$150."
1915 "\$[0-9]?[0-9]?[0-9]?((\,[0-9][0-9][0-9])*)?(\.[0-9][0-9])?$" G "<0>$28,009,987.88</0>"
1916 "\$[0-9]?[0-9]?[0-9]?((\,[0-9][0-9][0-9])*)?(\.[0-9][0-9])?$" G "<0>$23,099.05</0>"
1917 "\$[0-9]?[0-9]?[0-9]?((\,[0-9][0-9][0-9])*)?(\.[0-9][0-9])?$" G "<0>$.88</0>"
1918 "\$[0-9]?[0-9]?[0-9]?((\,[0-9][0-9][0-9])*)?(\.[0-9][0-9])?$" "$234,5.99"
1919 "^((((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>"
1920 "^((((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>"
1921 "^((((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>"
1922 "^((((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"
1923 "^((((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"
1924 "^((((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"
1925 "^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$" G "<0>somthing@someserver.com</0>"
1926 "^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$" G "<0>firstname.lastname@mailserver.domain.com</0>"
1927 "^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$" G "<0>username-something@some-server.nl</0>"
1928 "^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$" "username@someserver.domain.c"
1929 "^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$" "somename@server.domain-com"
1930 "^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$" "someone@something.se_eo"
1931 "(^([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>"
1932 "(^([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>"
1933 "(^([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>"
1934 "(^([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"
1935 "(^([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"
1936 "(^([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"
1937 "^([0-9]{2})?(\([0-9]{2})\)([0-9]{3}|[0-9]{4})-[0-9]{4}$" G "<0>55(21)123-4567</0>"
1938 "^([0-9]{2})?(\([0-9]{2})\)([0-9]{3}|[0-9]{4})-[0-9]{4}$" G "<0>(11)1234-5678</0>"
1939 "^([0-9]{2})?(\([0-9]{2})\)([0-9]{3}|[0-9]{4})-[0-9]{4}$" G "<0>55(71)4562-2234</0>"
1940 "^([0-9]{2})?(\([0-9]{2})\)([0-9]{3}|[0-9]{4})-[0-9]{4}$" "3434-3432"
1941 "^([0-9]{2})?(\([0-9]{2})\)([0-9]{3}|[0-9]{4})-[0-9]{4}$" "4(23)232-3232"
1942 "^([0-9]{2})?(\([0-9]{2})\)([0-9]{3}|[0-9]{4})-[0-9]{4}$" "55(2)232-232"
1943 "^((([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>"
1944 "^((([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>"
1945 "^((([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>"
1946 "^((([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"
1947 "^((([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"
1948 "^((([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"
1949 "^\d{0,2}(\.\d{1,2})?$" G "<0>99.99</0>"
1950 "^\d{0,2}(\.\d{1,2})?$" G "<0>99</0>"
1951 "^\d{0,2}(\.\d{1,2})?$" G "<0>.99</0>"
1952 "^\d{0,2}(\.\d{1,2})?$" "999.999"
1953 "^\d{0,2}(\.\d{1,2})?$" "999"
1954 "^\d{0,2}(\.\d{1,2})?$" ".999"
1955 "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{4,8}$" G "<0>1agdA*$#</0>"
1956 "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{4,8}$" G "<0>1agdA*$#</0>"
1957 "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{4,8}$" G "<0>1agdA*$#</0>"
1958 "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{4,8}$" "wyrn%@*&$# f"
1959 "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{4,8}$" "mbndkfh782"
1960 "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{4,8}$" "BNfhjdhfjd&*)%#$)"
1961 "^([a-zA-Z0-9][-a-zA-Z0-9]*[a-zA-Z0-9]\.)+([a-zA-Z0-9]{3,5})$" G "<0>freshmeat.net</0>"
1962 "^([a-zA-Z0-9][-a-zA-Z0-9]*[a-zA-Z0-9]\.)+([a-zA-Z0-9]{3,5})$" G "<0>123.com</0>"
1963 "^([a-zA-Z0-9][-a-zA-Z0-9]*[a-zA-Z0-9]\.)+([a-zA-Z0-9]{3,5})$" G "<0>TempLate-toolkKt.orG</0>"
1964 "^([a-zA-Z0-9][-a-zA-Z0-9]*[a-zA-Z0-9]\.)+([a-zA-Z0-9]{3,5})$" "-dog.com"
1965 "^([a-zA-Z0-9][-a-zA-Z0-9]*[a-zA-Z0-9]\.)+([a-zA-Z0-9]{3,5})$" "?boy.net"
1966 "^([a-zA-Z0-9][-a-zA-Z0-9]*[a-zA-Z0-9]\.)+([a-zA-Z0-9]{3,5})$" "this.domain"
1967 "^[^']*$" G "<0>asljas</0>"
1968 "^[^']*$" G "<0>%/&89uhuhadjkh</0>"
1969 "^[^']*$" G '<0>"hi there!"</0>'
1970 "^[^']*$" "'hi there!'"
1971 "^[^']*$" "It's 9 o'clock"
1972 "^[^']*$" "'''''"
1973 "(^\(\)$|^\(((\([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>"
1974 "(^\(\)$|^\(((\([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>"
1975 "(^\(\)$|^\(((\([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>"
1976 "(^\(\)$|^\(((\([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)))"
1977 "(^\(\)$|^\(((\([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}\)))$" "( )"
1978 "(^\(\)$|^\(((\([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)))"
1979 "^[a-zA-Z0-9\s .\-_']+$" G "<0>dony d'gsa</0>"
1980 "^[a-zA-Z0-9\s .\-_']+$" "^[a-zA-Z0-9\s.\-_']+$"
1981 "^[_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>"
1982 "^[_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>"
1983 "^[_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>"
1984 "^[_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"
1985 "^[_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"
1986 "^[_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"
1987 "^\d{5}(-\d{3})?$" G "<0>13165-000</0>"
1988 "^\d{5}(-\d{3})?$" G "<0>38175-000</0>"
1989 "^\d{5}(-\d{3})?$" G "<0>81470-276</0>"
1990 "^\d{5}(-\d{3})?$" "13165-00"
1991 "^\d{5}(-\d{3})?$" "38175-abc"
1992 "^\d{5}(-\d{3})?$" "81470-2763"
1993 "^\$(\d{1,3}(\,\d{3})*|(\d+))(\.\d{2})?$" G "<0>$0.84</0>"
1994 "^\$(\d{1,3}(\,\d{3})*|(\d+))(\.\d{2})?$" G "<0>$123458</0>"
1995 "^\$(\d{1,3}(\,\d{3})*|(\d+))(\.\d{2})?$" G "<0>$1,234,567.89</0>"
1996 "^\$(\d{1,3}(\,\d{3})*|(\d+))(\.\d{2})?$" "$12,3456.01"
1997 "^\$(\d{1,3}(\,\d{3})*|(\d+))(\.\d{2})?$" "12345"
1998 "^\$(\d{1,3}(\,\d{3})*|(\d+))(\.\d{2})?$" "$1.234"
1999 "([A-Z]:\\[^/:\*\?<>\|]+\.\w{2,6})|(\\{2}[^/:\*\?<>\|]+\.\w{2,6})" G "<0>C:\\temp\\this allows spaces\\web.config</0>"
2000 "([A-Z]:\\[^/:\*\?<>\|]+\.\w{2,6})|(\\{2}[^/:\*\?<>\|]+\.\w{2,6})" G "<0>\\\\Andromeda\\share\\file name.123</0>"
2001 "([A-Z]:\\[^/:\*\?<>\|]+\.\w{2,6})|(\\{2}[^/:\*\?<>\|]+\.\w{2,6})" "tz:\temp\ fi*le?na:m<e>.doc"
2002 "([A-Z]:\\[^/:\*\?<>\|]+\.\w{2,6})|(\\{2}[^/:\*\?<>\|]+\.\w{2,6})" "\\Andromeda\share\filename.a"
2003 "(^([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>"
2004 "(^([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>"
2005 "(^([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>"
2006 "(^([0-9]|[0-1][0-9]|[2][0-3]):([0-5][0-9])$)|(^([0-9]|[1][0-9]|[2][0-3])$)" "24:00"
2007 "(^([0-9]|[0-1][0-9]|[2][0-3]):([0-5][0-9])$)|(^([0-9]|[1][0-9]|[2][0-3])$)" "20 PM"
2008 "(^([0-9]|[0-1][0-9]|[2][0-3]):([0-5][0-9])$)|(^([0-9]|[1][0-9]|[2][0-3])$)" "20:15 PM"
2009 "^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(\.[0-9][0-9])?$" G "<0>$3,023,123.34</0>"
2010 "^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(\.[0-9][0-9])?$" G "<0>9,876,453</0>"
2011 "^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(\.[0-9][0-9])?$" G "<0>123456.78</0>"
2012 "^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(\.[0-9][0-9])?$" "4,33,234.34"
2013 "^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(\.[0-9][0-9])?$" "$1.234"
2014 "^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(\.[0-9][0-9])?$" "abc"
2015 "^\$?\d+(\.(\d{2}))?$" G "<0>$2.43</0>"
2016 "^\$?\d+(\.(\d{2}))?$" G "<0>2.02</0>"
2017 "^\$?\d+(\.(\d{2}))?$" G "<0>$2112</0>"
2018 "^\$?\d+(\.(\d{2}))?$" "2.1"
2019 "^\$?\d+(\.(\d{2}))?$" "$.14"
2020 "^\$?\d+(\.(\d{2}))?$" "$2,222.12"
2021 /("[^"]*")|('[^\r]*)(\r\n)?/ G '<0>"my string"</0>'
2022 /("[^"]*")|('[^\r]*)(\r\n)?/ G '<0>"a string with \u0027 in it"</0>'
2023 /("[^"]*")|('[^\r]*)(\r\n)?/ G "<0>' comment</0>"
2024 /("[^"]*")|('[^\r]*)(\r\n)?/ /asd "/
2025 "^[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>"
2026 "^[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>"
2027 "^[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"
2028 "^[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"
2029 "^[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"
2030 "^\d{2}(\x2e)(\d{3})(-\d{3})?$" G "<0>12.345-678</0>"
2031 "^\d{2}(\x2e)(\d{3})(-\d{3})?$" G "<0>23.345-123</0>"
2032 "^\d{2}(\x2e)(\d{3})(-\d{3})?$" G "<0>99.999</0>"
2033 "^\d{2}(\x2e)(\d{3})(-\d{3})?$" "41222-222"
2034 "^\d{2}(\x2e)(\d{3})(-\d{3})?$" "3.444-233"
2035 "^\d{2}(\x2e)(\d{3})(-\d{3})?$" "43.324444"
2036 "^\d{2}(\u002e)(\d{3})(-\d{3})?$" G "<0>12.345-678</0>"
2037 "^\d{2}(\u002e)(\d{3})(-\d{3})?$" G "<0>23.345-123</0>"
2038 "^\d{2}(\u002e)(\d{3})(-\d{3})?$" G "<0>99.999</0>"
2039 "^\d{2}(\u002e)(\d{3})(-\d{3})?$" "41222-222"
2040 "^\d{2}(\u002e)(\d{3})(-\d{3})?$" "3.444-233"
2041 "^\d{2}(\u002e)(\d{3})(-\d{3})?$" "43.324444"
2042 #"^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w ]*))+\.(txt|TXT)$" G "<0>c:\file.txt</0>" # TODO: debug
2043 #"^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w ]*))+\.(txt|TXT)$" G "<0>c:\folder\sub folder\file.txt</0>" # TODO: debug
2044 #"^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w ]*))+\.(txt|TXT)$" G "<0>\\network\folder\file.txt</0>" # TODO: debug
2045 "^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w ]*))+\.(txt|TXT)$" "C:"
2046 "^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w ]*))+\.(txt|TXT)$" "C:\file.xls"
2047 "^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w ]*))+\.(txt|TXT)$" "folder.txt"
2048 "^[a-zA-Z0-9]+([a-zA-Z0-9\-\.]+)?\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$" G "<0>my.domain.com</0>"
2049 "^[a-zA-Z0-9]+([a-zA-Z0-9\-\.]+)?\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$" G "<0>regexlib.com</0>"
2050 "^[a-zA-Z0-9]+([a-zA-Z0-9\-\.]+)?\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$" G "<0>big-reg.com</0>"
2051 "^[a-zA-Z0-9]+([a-zA-Z0-9\-\.]+)?\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$" ".mydomain.com"
2052 "^[a-zA-Z0-9]+([a-zA-Z0-9\-\.]+)?\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$" "regexlib.comm"
2053 "^[a-zA-Z0-9]+([a-zA-Z0-9\-\.]+)?\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$" "-bigreg.com"
2054 "^\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>"
2055 "^\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>"
2056 "^\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>"
2057 "^\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"
2058 "^\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"
2059 "^\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"
2060 "^http\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(/\S*)?$" G "<0>http://psychopop.org</0>"
2061 "^http\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(/\S*)?$" G "<0>http://www.edsroom.com/newUser.asp</0>"
2062 "^http\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(/\S*)?$" G "<0>http://unpleasant.jarrin.net/markov/inde</0>"
2063 "^http\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(/\S*)?$" "ftp://psychopop.org"
2064 "^http\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(/\S*)?$" "http://www.edsroom/"
2065 "^http\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(/\S*)?$" "http://un/pleasant.jarrin.net/markov/index.asp"
2066 "^( [1-9]|[1-9]|0[1-9]|10|11|12)[0-5]\d$" G "<0>1145</0>"
2067 "^( [1-9]|[1-9]|0[1-9]|10|11|12)[0-5]\d$" G "<0>933</0>"
2068 "^( [1-9]|[1-9]|0[1-9]|10|11|12)[0-5]\d$" G "<0> 801</0>"
2069 "^( [1-9]|[1-9]|0[1-9]|10|11|12)[0-5]\d$" "0000"
2070 "^( [1-9]|[1-9]|0[1-9]|10|11|12)[0-5]\d$" "1330"
2071 "^( [1-9]|[1-9]|0[1-9]|10|11|12)[0-5]\d$" "8:30"
2072 "^\d{1,2}\/\d{2,4}$" G "<0>9/02</0>"
2073 "^\d{1,2}\/\d{2,4}$" G "<0>09/2002</0>"
2074 "^\d{1,2}\/\d{2,4}$" G "<0>09/02</0>"
2075 "^\d{1,2}\/\d{2,4}$" "Fall 2002"
2076 "^\d{1,2}\/\d{2,4}$" "Sept 2002"
2077 "^(|(0[1-9])|(1[0-2]))\/((0[1-9])|(1\d)|(2\d)|(3[0-1]))\/((\d{4}))$" G "<0>01/01/2001</0>"
2078 "^(|(0[1-9])|(1[0-2]))\/((0[1-9])|(1\d)|(2\d)|(3[0-1]))\/((\d{4}))$" G "<0>02/30/2001</0>"
2079 "^(|(0[1-9])|(1[0-2]))\/((0[1-9])|(1\d)|(2\d)|(3[0-1]))\/((\d{4}))$" G "<0>12/31/2002</0>"
2080 "^(|(0[1-9])|(1[0-2]))\/((0[1-9])|(1\d)|(2\d)|(3[0-1]))\/((\d{4}))$" "1/1/02"
2081 "^(|(0[1-9])|(1[0-2]))\/((0[1-9])|(1\d)|(2\d)|(3[0-1]))\/((\d{4}))$" "1/1/2002"
2082 "^(|(0[1-9])|(1[0-2]))\/((0[1-9])|(1\d)|(2\d)|(3[0-1]))\/((\d{4}))$" "1/25/2002"
2083 "^(1?(-?\d{3})-?)?(\d{3})(-?\d{4})$" G "<0>15615552323</0>"
2084 "^(1?(-?\d{3})-?)?(\d{3})(-?\d{4})$" G "<0>1-561-555-1212</0>"
2085 "^(1?(-?\d{3})-?)?(\d{3})(-?\d{4})$" G "<0>5613333</0>"
2086 "^(1?(-?\d{3})-?)?(\d{3})(-?\d{4})$" "1-555-5555"
2087 "^(1?(-?\d{3})-?)?(\d{3})(-?\d{4})$" "15553333"
2088 "^(1?(-?\d{3})-?)?(\d{3})(-?\d{4})$" "0-561-555-1212"
2089 '<[^>]*name[\s]*=[\s]*"?[^\w_]*"?[^>]*>' G '<0><input type = text name = "bob"></0>'
2090 '<[^>]*name[\s]*=[\s]*"?[^\w_]*"?[^>]*>' G '<0><select name = "fred"></0>'
2091 #'<[^>]*name[\s]*=[\s]*"?[^\w_]*"?[^>]*>' G '<0><form></0>' #TODO: Debug
2092 '<[^>]*name[\s]*=[\s]*"?[^\w_]*"?[^>]*>' "<input type = submit>" # TODO: \w in pattern
2093 '<[^>]*name[\s]*=[\s]*"?[^\w_]*"?[^>]*>' '<font face = "arial">' # TODO: \w in pattern
2094 '<[^>]*name[\s]*=[\s]*"?[^\w_]*"?[^>]*>' "The drity brown fox stank like"
2095 "^(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>"
2096 "^(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>"
2097 "^(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>"
2098 "^(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"
2099 "^\d*$" G "<0>123</0>"
2100 "^\d*$" G "<0>000</0>"
2101 "^\d*$" G "<0>43</0>"
2102 "^\d*$" "asbc"
2103 "^\d*$" "-34"
2104 "^\d*$" "3.1415"
2105 "^[-+]?\d*$" G "<0>123</0>"
2106 "^[-+]?\d*$" G "<0>-123</0>"
2107 "^[-+]?\d*$" G "<0>+123</0>"
2108 "^[-+]?\d*$" "abc"
2109 "^[-+]?\d*$" "3.14159"
2110 "^[-+]?\d*$" "-3.14159"
2111 "^\d*\.?\d*$" G "<0>123</0>"
2112 "^\d*\.?\d*$" G "<0>3.14159</0>"
2113 "^\d*\.?\d*$" G "<0>.234</0>"
2114 "^\d*\.?\d*$" "abc"
2115 "^\d*\.?\d*$" "-3.14159"
2116 "^\d*\.?\d*$" "3.4.2"
2117 "^((\d{5}-\d{4})|(\d{5})|([A-Z]\d[A-Z]\s\d[A-Z]\d))$" G "<0>44240</0>"
2118 "^((\d{5}-\d{4})|(\d{5})|([A-Z]\d[A-Z]\s\d[A-Z]\d))$" G "<0>44240-5555</0>"
2119 "^((\d{5}-\d{4})|(\d{5})|([A-Z]\d[A-Z]\s\d[A-Z]\d))$" G "<0>T2P 3C7</0>"
2120 "^((\d{5}-\d{4})|(\d{5})|([A-Z]\d[A-Z]\s\d[A-Z]\d))$" "44240ddd"
2121 "^((\d{5}-\d{4})|(\d{5})|([A-Z]\d[A-Z]\s\d[A-Z]\d))$" "t44240-55"
2122 "^((\d{5}-\d{4})|(\d{5})|([A-Z]\d[A-Z]\s\d[A-Z]\d))$" "t2p3c7"
2123 "^[\\(]{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>"
2124 "^[\\(]{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>"
2125 "^[\\(]{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>"
2126 "^[\\(]{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"
2127 "^[\\(]{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"
2128 "^[\\(]{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"
2129 "^((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>"
2130 "^((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>"
2131 "^((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>"
2132 "^((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"
2133 "^((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"
2134 "^((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"
2135 "^(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>"
2136 "^(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>"
2137 "^(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>"
2138 "^(0[1-9]|1[0-2])\/((0[1-9]|2\d)|3[0-1])\/(19\d\d|200[0-3])$" "1/1/2002"
2139 "^(0[1-9]|1[0-2])\/((0[1-9]|2\d)|3[0-1])\/(19\d\d|200[0-3])$" "01/01/02"
2140 "^(0[1-9]|1[0-2])\/((0[1-9]|2\d)|3[0-1])\/(19\d\d|200[0-3])$" "01/01/2004"
2141 "^((((([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>"
2142 "^((((([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>"
2143 "^((((([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>"
2144 "^((((([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"
2145 "^((((([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"
2146 "^((((([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"
2147 "([a-zA-Z]:(\\w+)*\\[a-zA-Z0_9]+)?.xls" G "<0>E:\DyAGT\SD01A_specV2.xls</0>"
2148 "([a-zA-Z]:(\\w+)*\\[a-zA-Z0_9]+)?.xls" "E:\DyAGT\SD01A_specV2.txt"
2149 "(((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>"
2150 "(((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>"
2151 "(((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>"
2152 "(((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"
2153 "(((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"
2154 "(((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"
2155 "^[a-zA-Z0-9\s .\-]+$" G "<0>2222 Mock St.</0>" # TODO: \s in patterns not implemented
2156 "^[a-zA-Z0-9\s .\-]+$" G "<0>1 A St.</0>"
2157 "^[a-zA-Z0-9\s .\-]+$" G "<0>555-1212</0>"
2158 "^[a-zA-Z0-9\s.\-]+$" "[A Street]"
2159 "^[a-zA-Z0-9\s.\-]+$" "(3 A St.)"
2160 "^[a-zA-Z0-9\s.\-]+$" "{34 C Ave.}"
2161 "^[a-zA-Z0-9\s.\-]+$" "Last.*?(\d+.?\d*)"
2162 "^[a-zA-Z0-9\s .\-]+$" G "<TR><TD ALIGN=RIGHT> </TD><TD>Last</TD><TD ALIGN=RIGHT NOW"
2163 "^[a-zA-Z0-9\s.\-]+$" "[AADDSS]"
2164 "^([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>"
2165 "^([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>"
2166 "^([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>"
2167 "^([0-9]( |-)?)?(\(?[0-9]{3}\)?|[0-9]{3})( |-)?([0-9]{3}( |-)?[0-9]{4}|[a-zA-Z0-9]{7})$" "1.123.123.1234"
2168 "^([0-9]( |-)?)?(\(?[0-9]{3}\)?|[0-9]{3})( |-)?([0-9]{3}( |-)?[0-9]{4}|[a-zA-Z0-9]{7})$" "(123)-1234-123"
2169 "^([0-9]( |-)?)?(\(?[0-9]{3}\)?|[0-9]{3})( |-)?([0-9]{3}( |-)?[0-9]{4}|[a-zA-Z0-9]{7})$" "123-1234"
2170 "^([0-1][0-9]|[2][0-3]):([0-5][0-9])$" G "<0>02:04</0>"
2171 "^([0-1][0-9]|[2][0-3]):([0-5][0-9])$" G "<0>16:56</0>"
2172 "^([0-1][0-9]|[2][0-3]):([0-5][0-9])$" G "<0>23:59</0>"
2173 "^([0-1][0-9]|[2][0-3]):([0-5][0-9])$" "02:00 PM"
2174 "^([0-1][0-9]|[2][0-3]):([0-5][0-9])$" "PM2:00"
2175 "^([0-1][0-9]|[2][0-3]):([0-5][0-9])$" "24:00"
2176 "^[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>"
2177 "^[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>"
2178 "^[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>"
2179 "^[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"
2180 "^[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"
2181 "^[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"
2182 "((\(\d{3}\)?)|(\d{3}))([\s \-./]?)(\d{3})([\s \-./]?)(\d{4})" G "<0>1.2123644567</0>"
2183 "((\(\d{3}\)?)|(\d{3}))([\s \-./]?)(\d{3})([\s \-./]?)(\d{4})" G "<0>0-234.567/8912</0>"
2184 "((\(\d{3}\)?)|(\d{3}))([\s \-./]?)(\d{3})([\s \-./]?)(\d{4})" G "<0>1-(212)-123 4567</0>"
2185 "((\(\d{3}\)?)|(\d{3}))([\s \-./]?)(\d{3})([\s \-./]?)(\d{4})" "0-212364345"
2186 "((\(\d{3}\)?)|(\d{3}))([\s \-./]?)(\d{3})([\s \-./]?)(\d{4})" "1212-364,4321"
2187 "((\(\d{3}\)?)|(\d{3}))([\s \-./]?)(\d{3})([\s \-./]?)(\d{4})" "0212\345/6789"
2188 "^([0-9]{6}[\s \-]{1}[0-9]{12}|[0-9]{18})$" G "<0>000000 000000000000</0>"
2189 "^([0-9]{6}[\s \-]{1}[0-9]{12}|[0-9]{18})$" G "<0>000000-000000000000</0>"
2190 "^([0-9]{6}[\s \-]{1}[0-9]{12}|[0-9]{18})$" G "<0>000000000000000000</0>"
2191 "^([0-9]{6}[\s \-]{1}[0-9]{12}|[0-9]{18})$" "000000_000000000000"
2192 "^(([1-9])|(0[1-9])|(1[0-2]))\/((0[1-9])|([1-31]))\/((\d{2})|(\d{4}))$" G "<0>01/01/2001</0>"
2193 "^(([1-9])|(0[1-9])|(1[0-2]))\/((0[1-9])|([1-31]))\/((\d{2})|(\d{4}))$" G "<0>1/1/2001</0>"
2194 "^(([1-9])|(0[1-9])|(1[0-2]))\/((0[1-9])|([1-31]))\/((\d{2})|(\d{4}))$" G "<0>01/1/01</0>"
2195 "^(([1-9])|(0[1-9])|(1[0-2]))\/((0[1-9])|([1-31]))\/((\d{2})|(\d{4}))$" "13/01/2001"
2196 "^(([1-9])|(0[1-9])|(1[0-2]))\/((0[1-9])|([1-31]))\/((\d{2})|(\d{4}))$" "1/2/100"
2197 "^(([1-9])|(0[1-9])|(1[0-2]))\/((0[1-9])|([1-31]))\/((\d{2})|(\d{4}))$" "09/32/2001"
2198 "^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(.[0-9][0-9])?$" G "<0>$3,023,123.34</0>"
2199 "^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(.[0-9][0-9])?$" G "<0>9,876,453</0>"
2200 "^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(.[0-9][0-9])?$" G "<0>123456.78</0>"
2201 "^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(.[0-9][0-9])?$" "4,33,234.34"
2202 "^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(.[0-9][0-9])?$" "$1.234"
2203 "^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(.[0-9][0-9])?$" "abc"
2204 "^\d{5}$|^\d{5}-\d{4}$" G "<0>55555-5555</0>"
2205 "^\d{5}$|^\d{5}-\d{4}$" G "<0>34564-3342</0>"
2206 "^\d{5}$|^\d{5}-\d{4}$" G "<0>90210</0>"
2207 "^\d{5}$|^\d{5}-\d{4}$" "434454444"
2208 "^\d{5}$|^\d{5}-\d{4}$" "645-32-2345"
2209 "^\d{5}$|^\d{5}-\d{4}$" "abc"
2210 "^\d{3}-\d{2}-\d{4}$" G "<0>333-22-4444</0>"
2211 "^\d{3}-\d{2}-\d{4}$" G "<0>123-45-6789</0>"
2212 "^\d{3}-\d{2}-\d{4}$" "123456789"
2213 "^\d{3}-\d{2}-\d{4}$" "SSN"
2214 "^[2-9]\d{2}-\d{3}-\d{4}$" G "<0>800-555-5555</0>"
2215 "^[2-9]\d{2}-\d{3}-\d{4}$" G "<0>333-444-5555</0>"
2216 "^[2-9]\d{2}-\d{3}-\d{4}$" G "<0>212-666-1234</0>"
2217 "^[2-9]\d{2}-\d{3}-\d{4}$" "000-000-0000"
2218 "^[2-9]\d{2}-\d{3}-\d{4}$" "123-456-7890"
2219 "^[2-9]\d{2}-\d{3}-\d{4}$" "2126661234"
2220 "^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$" G "<0>44240</0>"
2221 "^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$" G "<0>44240-5555</0>"
2222 "^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$" G "<0>G3H 6A3</0>"
2223 "^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$" "Ohio"
2224 "^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$" "abc"
2225 "^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$" "g3h6a3"
2226 "[0-9]{4}\s*[a-zA-Z]{2}" G "<0>1054 WD</0>"
2227 "[0-9]{4}\s*[a-zA-Z]{2}" G "<0>1054WD</0>"
2228 "[0-9]{4}\s*[a-zA-Z]{2}" G "<0>1054 wd</0>"
2229 "[0-9]{4}\s*[a-zA-Z]{2}" "10543"
2230 "(^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>"
2231 "(^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>"
2232 "(^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>"
2233 "(^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"
2234 "(^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"
2235 "^((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>"
2236 "^((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>"
2237 "^((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>"
2238 "^((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/"
2239 "^((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/"
2240 "^((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"
2241 "([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})" G "<0>2002-11-03</0>"
2242 "([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})" G "<0>2007-17-08</0>"
2243 "([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})" G "<0>9999-99-99</0>"
2244 "([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})" "2002/17/18"
2245 "([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})" "2002.18.45"
2246 "([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})" "18.45.2002"
2247 "^\$?(\d{1,3}(\,\d{3})*|(\d+))(\.\d{0,2})?$" G "<0>$0,234.50</0>"
2248 "^\$?(\d{1,3}(\,\d{3})*|(\d+))(\.\d{0,2})?$" G "<0>0234.5</0>"
2249 "^\$?(\d{1,3}(\,\d{3})*|(\d+))(\.\d{0,2})?$" G "<0>0,234.</0>"
2250 "^\$?(\d{1,3}(\,\d{3})*|(\d+))(\.\d{0,2})?$" "$1,23,50"
2251 "^\$?(\d{1,3}(\,\d{3})*|(\d+))(\.\d{0,2})?$" "$123.123"
2252 "(^\d{5}-\d{3}|^\d{2}.\d{3}-\d{3}|\d{8})" G "<0>12.345-678</0>"
2253 "(^\d{5}-\d{3}|^\d{2}.\d{3}-\d{3}|\d{8})" G "<0>12345-678</0>"
2254 "(^\d{5}-\d{3}|^\d{2}.\d{3}-\d{3}|\d{8})" G "<0>12345678</0>"
2255 "(^\d{5}-\d{3}|^\d{2}.\d{3}-\d{3}|\d{8})" "12.345678"
2256 "(^\d{5}-\d{3}|^\d{2}.\d{3}-\d{3}|\d{8})" "12345-1"
2257 "(^\d{5}-\d{3}|^\d{2}.\d{3}-\d{3}|\d{8})" "123"
2258 '^([a-zA-Z]\:|\\)\\([^\\]+\\)*[^\/:*?"<>|]+\.htm(l)?$' G "<0>x:\\test\\testing.htm</0>"
2259 '^([a-zA-Z]\:|\\)\\([^\\]+\\)*[^\/:*?"<>|]+\.htm(l)?$' G "<0>x:\\test\\test#$ ing.html</0>"
2260 '^([a-zA-Z]\:|\\)\\([^\\]+\\)*[^\/:*?"<>|]+\.htm(l)?$' G "<0>\\\\test\testing.html</0>"
2261 '^([a-zA-Z]\:|\\)\\([^\\]+\\)*[^\/:*?"<>|]+\.htm(l)?$' "x:\test\test/ing.htm"
2262 '^([a-zA-Z]\:|\\)\\([^\\]+\\)*[^\/:*?"<>|]+\.htm(l)?$' "x:\test\test*.htm"
2263 '^([a-zA-Z]\:|\\)\\([^\\]+\\)*[^\/:*?"<>|]+\.htm(l)?$' "\\test?<.htm"
2264 "^[1-9]{1}[0-9]{3}$" G "<0>1234</0>"
2265 "^[1-9]{1}[0-9]{3}$" "123"
2266 "^[1-9]{1}[0-9]{3}$" "123A"
2267 "^[A-Z]{1}( |-)?[1-9]{1}[0-9]{3}$" G "<0>A-1234</0>"
2268 "^[A-Z]{1}( |-)?[1-9]{1}[0-9]{3}$" G "<0>A 1234</0>"
2269 "^[A-Z]{1}( |-)?[1-9]{1}[0-9]{3}$" G "<0>A1234</0>"
2270 "^[A-Z]{1}( |-)?[1-9]{1}[0-9]{3}$" "AA-1234"
2271 "^[A-Z]{1}( |-)?[1-9]{1}[0-9]{3}$" "A12345"
2272 "^(F-)?[0-9]{5}$" G "<0>12345</0>"
2273 "^(F-)?[0-9]{5}$" G "<0>F-12345</0>"
2274 "^(F-)?[0-9]{5}$" "F12345"
2275 "^(F-)?[0-9]{5}$" "F-123456"
2276 "^(F-)?[0-9]{5}$" "123456"
2277 "^(V-|I-)?[0-9]{4}$" G "<0>1234</0>"
2278 "^(V-|I-)?[0-9]{4}$" G "<0>V-1234</0>"
2279 "^(V-|I-)?[0-9]{4}$" "12345"
2280 "^[1-9]{1}[0-9]{3} ?[A-Z]{2}$" G "<0>1234 AB</0>"
2281 "^[1-9]{1}[0-9]{3} ?[A-Z]{2}$" G "<0>1234AB</0>"
2282 "^[1-9]{1}[0-9]{3} ?[A-Z]{2}$" "123AB"
2283 "^[1-9]{1}[0-9]{3} ?[A-Z]{2}$" "1234AAA"
2284 "^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$" G "<0>12345</0>"
2285 "^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$" G "<0>10234</0>"
2286 "^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$" G "<0>01234</0>"
2287 "^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$" "00123"
2288 "^(/w|/W|[^<>+?$%\{}\&])+$" G "<0>John Doe Sr.</0>"
2289 "^(/w|/W|[^<>+?$%\{}\&])+$" G "<0>100 Elm St., Suite 25</0>"
2290 "^(/w|/W|[^<>+?$%\{}\&])+$" G "<0>Valerie's Gift Shop</0>"
2291 "^(/w|/W|[^<>+?$%\{}\&])+$" "<h1>Hey</h1>"
2292 /<[a-zA-Z][^>]*\son\w+=(\w+|'[^']*'|"[^"]*")[^>]*>/ G '<0><IMG onmouseover="window.close()"></0>'
2293 /<[a-zA-Z][^>]*\son\w+=(\w+|'[^']*'|"[^"]*")[^>]*>/ '<IMG src="star.gif">'
2294 "(?!^0*$)(?!^0*\.0*$)^\d{1,5}(\.\d{1,3})?$" G "<0>1</0>"
2295 "(?!^0*$)(?!^0*\.0*$)^\d{1,5}(\.\d{1,3})?$" G "<0>12345.123</0>"
2296 "(?!^0*$)(?!^0*\.0*$)^\d{1,5}(\.\d{1,3})?$" G "<0>0.5</0>"
2297 "(?!^0*$)(?!^0*\.0*$)^\d{1,5}(\.\d{1,3})?$" "0"
2298 "(?!^0*$)(?!^0*\.0*$)^\d{1,5}(\.\d{1,3})?$" "0.0"
2299 "(?!^0*$)(?!^0*\.0*$)^\d{1,5}(\.\d{1,3})?$" "123456.1234"
2300 "^.+@[^\.].*\.[a-z]{2,}$" G "<0>whatever@somewhere.museum</0>"
2301 "^.+@[^\.].*\.[a-z]{2,}$" G "<0>foreignchars@myforeigncharsdomain.nu</0>"
2302 "^.+@[^\.].*\.[a-z]{2,}$" G "<0>me+mysomething@mydomain.com</0>"
2303 "^.+@[^\.].*\.[a-z]{2,}$" "a@b.c"
2304 "^.+@[^\.].*\.[a-z]{2,}$" "me@.my.com"
2305 "^.+@[^\.].*\.[a-z]{2,}$" "a@b.comFOREIGNCHAR"
2306 "^(\d{5}-\d{4}|\d{5})$" G "<0>12345</0>"
2307 "^(\d{5}-\d{4}|\d{5})$" G "<0>12345-1234</0>"
2308 "^(\d{5}-\d{4}|\d{5})$" "12345-12345"
2309 "^(\d{5}-\d{4}|\d{5})$" "123"
2310 "^(\d{5}-\d{4}|\d{5})$" "12345-abcd"
2311 "^(\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>"
2312 "^(\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>"
2313 "^(\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>"
2314 "^(\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"
2315 "^(\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"
2316 "^(\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."
2317 "<img([^>]*[^/])>" G '<0><img src="bob"></0>'
2318 "<img([^>]*[^/])>" '<img src="bob" />'
2319 "<!--[\s\S]*?-->" G "<0><!-- comments --></0>"
2320 "<!--[\s\S]*?-->" G "<0><!-- x = a > b - 3 --></0>"
2321 "<!--[\s\S]*?-->" "<COMMENTS>this is a comment</COMMENTS>"
2322 "<!--[\p{Zs}\P{Zs}]*?-->" G "<0><!-- comments --></0>"
2323 "<!--[\p{Zs}\P{Zs}]*?-->" G "<0><!-- x = a > b - 3 --></0>"
2324 "<!--[\p{Zs}\P{Zs}]*?-->" "<COMMENTS>this is a comment</COMMENTS>"
2325 /<\u002f?(\w+)(\s+\w+=(\w+|"[^"]*"|'[^']*'))*>/ G "<0><TD></0>"
2326 /<\u002f?(\w+)(\s+\w+=(\w+|"[^"]*"|'[^']*'))*>/ G '<0><TD bgColor="FFFFFF"></0>'
2327 /<\u002f?(\w+)(\s+\w+=(\w+|"[^"]*"|'[^']*'))*>/ G "<0></TD></0>"
2328 /<\u002f?(\w+)(\s+\w+=(\w+|"[^"]*"|'[^']*'))*>/ "No Tag Here ..."
2329 "(\{\\f\d*)\\([^;]+;)" G "<0>{\\f0\\Some Font names here;</0>"
2330 "(\{\\f\d*)\\([^;]+;)" G "<0>{\\f1\\fswiss\\fcharset0\\fprq2{\\*\\panose 020b0604020202020204}Arial;</0>"
2331 "(\{\\f\d*)\\([^;]+;)" G "{\\f"
2332 "(\{\\f\d*)\\([^;]+;)" "{f0fs20 some text}"
2333 #"</?([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!
2334 #"</?([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"
2335 "^([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>"
2336 "^([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>"
2337 "^([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>"
2338 "^([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"
2339 "^([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"
2340 "^([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"
2341 #"((?<strElement>(^[A-Z0-9-;=]*:))(?<strValue>(.*)))" G "<0>BEGIN:</0>" #named capture
2342 #"((?<strElement>(^[A-Z0-9-;=]*:))(?<strValue>(.*)))" G "<0>TEL;WORK;VOICE:</0>" #named capture
2343 #"((?<strElement>(^[A-Z0-9-;=]*:))(?<strValue>(.*)))" G "<0>TEL:</0>" #named capture
2344 #"((?<strElement>(^[A-Z0-9-;=]*:))(?<strValue>(.*)))" "begin:" #named capture
2345 #"((?<strElement>(^[A-Z0-9-;=]*:))(?<strValue>(.*)))" "TEL;PREF;" #named capture
2346 '^<a\s+href\s*=\s*"http:\/\/([^"]*)"([^>]*)>(.*?(?=<\/a>))<\/a>$' G '<0><a href="http://www.mysite.com">my external link</a></0>'
2347 '^<a\s+href\s*=\s*"http:\/\/([^"]*)"([^>]*)>(.*?(?=<\/a>))<\/a>$' G '<a href="http:/'
2348 '^<a\s+href\s*=\s*"http:\/\/([^"]*)"([^>]*)>(.*?(?=<\/a>))<\/a>$' '<a href="myinternalpage.html">my internal link</a>'
2349 "^([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>"
2350 "^([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>"
2351 "^([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>"
2352 "^([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"
2353 "^([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"
2354 "<blockquote>(?:\s*([^<]+)<br>\s*)+</blockquote>" G "<0><blockquote>string1<br>string2<br>string3<br></blockquote></0>"
2355 "<blockquote>(?:\s*([^<]+)<br>\s*)+</blockquote>" ".."
2356 "^((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>"
2357 "^((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>"
2358 "^((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>"
2359 "^((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"
2360 "^((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"
2361 '</?(\w+)(\s*\w*\s*=\s*("[^"]*"|\u0027[^\u0027]\u0027|[^>]*))*|/?>' G '<0><font color="blue"></0>'
2362 '</?(\w+)(\s*\w*\s*=\s*("[^"]*"|\u0027[^\u0027]\u0027|[^>]*))*|/?>' G "<0></font></0>"
2363 '</?(\w+)(\s*\w*\s*=\s*("[^"]*"|\u0027[^\u0027]\u0027|[^>]*))*|/?>' G "<0><br /></0>"
2364 '</?(\w+)(\s*\w*\s*=\s*("[^"]*"|\u0027[^\u0027]\u0027|[^>]*))*|/?>' "this is a test..."
2365 "^ *(1[0-2]|[1-9]):[0-5][0-9] *(a|p|A|P)(m|M) *$" G "<0>12:00am</0>"
2366 "^ *(1[0-2]|[1-9]):[0-5][0-9] *(a|p|A|P)(m|M) *$" G "<0>1:00 PM</0>"
2367 "^ *(1[0-2]|[1-9]):[0-5][0-9] *(a|p|A|P)(m|M) *$" G "<0> 12:59 pm</0>"
2368 "^ *(1[0-2]|[1-9]):[0-5][0-9] *(a|p|A|P)(m|M) *$" "0:00"
2369 "^ *(1[0-2]|[1-9]):[0-5][0-9] *(a|p|A|P)(m|M) *$" "0:01 am"
2370 "^ *(1[0-2]|[1-9]):[0-5][0-9] *(a|p|A|P)(m|M) *$" "13:00 pm"
2371 "\({1}[0-9]{3}\){1}\-{1}[0-9]{3}\-{1}[0-9]{4}" G "<0>(111)-111-1111</0>"
2372 "\({1}[0-9]{3}\){1}\-{1}[0-9]{3}\-{1}[0-9]{4}" "11111111111"
2373 "[^abc]" G "<0>def</0>"
2374 "[^abc]" "abc"
2375 "^(([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>"
2376 "^(([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>"
2377 "^(([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>"
2378 "^(([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"
2379 "^(([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"
2380 "^(([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"
2381 "^([1][12]|[0]?[1-9])[\/-]([3][01]|[12]\d|[0]?[1-9])[\/-](\d{4}|\d{2})$" G "<0>11-02-02</0>"
2382 "^([1][12]|[0]?[1-9])[\/-]([3][01]|[12]\d|[0]?[1-9])[\/-](\d{4}|\d{2})$" G "<0>1-25-2002</0>"
2383 "^([1][12]|[0]?[1-9])[\/-]([3][01]|[12]\d|[0]?[1-9])[\/-](\d{4}|\d{2})$" G "<0>01/25/2002</0>"
2384 "^([1][12]|[0]?[1-9])[\/-]([3][01]|[12]\d|[0]?[1-9])[\/-](\d{4}|\d{2})$" "13-02-02"
2385 "^([1][12]|[0]?[1-9])[\/-]([3][01]|[12]\d|[0]?[1-9])[\/-](\d{4}|\d{2})$" "11.02.02"
2386 "^([1][12]|[0]?[1-9])[\/-]([3][01]|[12]\d|[0]?[1-9])[\/-](\d{4}|\d{2})$" "11/32/2002"
2387 "(([0-1][0-9])|([2][0-3])):([0-5][0-9]):([0-5][0-9])" G "<0>09:30:00</0>"
2388 "(([0-1][0-9])|([2][0-3])):([0-5][0-9]):([0-5][0-9])" G "<0>17:45:20</0>"
2389 "(([0-1][0-9])|([2][0-3])):([0-5][0-9]):([0-5][0-9])" G "<0>23:59:59</0>"
2390 "(([0-1][0-9])|([2][0-3])):([0-5][0-9]):([0-5][0-9])" "24:00:00"
2391 "(((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>"
2392 "(((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>"
2393 "(((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>"
2394 "(((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"
2395 "(((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"
2396 "(((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"
2397 "^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>"
2398 "^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>"
2399 "^0[1-6]{1}(([0-9]{2}){4})|((\s[0-9]{2}){4})|((-[0-9]{2}){4})$" G "<0>0146708912</0>"
2400 "^0[1-6]{1}(([0-9]{2}){4})|((\s[0-9]{2}){4})|((-[0-9]{2}){4})$" "01-46708912"
2401 "^0[1-6]{1}(([0-9]{2}){4})|((\s[0-9]{2}){4})|((-[0-9]{2}){4})$" "01 46708912"
2402 "^0[1-6]{1}(([0-9]{2}){4})|((\s[0-9]{2}){4})|((-[0-9]{2}){4})$" "+33235256677"
2403 "^[0-9A-Za-z_ ]+(.[jJ][pP][gG]|.[gG][iI][fF])$" G "<0>good.gif</0>"
2404 "^[0-9A-Za-z_ ]+(.[jJ][pP][gG]|.[gG][iI][fF])$" G "<0>go d.GIf</0>"
2405 "^[0-9A-Za-z_ ]+(.[jJ][pP][gG]|.[gG][iI][fF])$" G "<0>goo_d.jPg</0>"
2406 "^[0-9A-Za-z_ ]+(.[jJ][pP][gG]|.[gG][iI][fF])$" "junk"
2407 "^[0-9A-Za-z_ ]+(.[jJ][pP][gG]|.[gG][iI][fF])$" "bad.bad.gif"
2408 "^[0-9A-Za-z_ ]+(.[jJ][pP][gG]|.[gG][iI][fF])$" "slash\gif."
2409 "<[^>\s]*\bauthor\b[^>]*>" G '<0><author name="Daniel"></0>'
2410 "<[^>\s]*\bauthor\b[^>]*>" G "<0></sch:author></0>"
2411 # "<[^>\s]*\bauthor\b[^>]*>" G '<0><pp:author name="Daniel"</0>' #Debug should work
2412 "<[^> ]*\bauthor\b[^>]*>" G "<0></sch:author></0>"
2413 "<[^> ]*\bauthor\b[^>]*>" G '<0><pp:author name="Daniel"></0>'
2414 "<[^>\s]*\bauthor\b[^>]*>" "<other>"
2415 "<[^>\s]*\bauthor\b[^>]*>" "</authors>"
2416 "<[^>\s]*\bauthor\b[^>]*>" "<work>author</work>"
2417 "^(?:(?:(?:(?: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>"
2418 "^(?:(?:(?:(?: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>"
2419 "^(?:(?:(?:(?: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>"
2420 "^(?:(?:(?:(?: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"
2421 "^(?:(?:(?:(?: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"
2422 "^(?:(?:(?:(?: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"
2423 '(\d*)\u0027*-*(\d*)/*(\d*)"' G '<0>5\u0027-3/16"</0>'
2424 '(\d*)\u0027*-*(\d*)/*(\d*)"' G '<0>1\u0027-2"</0>'
2425 '(\d*)\u0027*-*(\d*)/*(\d*)"' G '<0>5/16"</0>'
2426 '(\d*)\u0027*-*(\d*)/*(\d*)"' '1 3/16'
2427 "^[1-9]{1}$|^[1-4]{1}[0-9]{1}$|^50$" G "<0>1</0>"
2428 "^[1-9]{1}$|^[1-4]{1}[0-9]{1}$|^50$" G "<0>23</0>"
2429 "^[1-9]{1}$|^[1-4]{1}[0-9]{1}$|^50$" G "<0>50</0>"
2430 "^[1-9]{1}$|^[1-4]{1}[0-9]{1}$|^50$" "0"
2431 "^[1-9]{1}$|^[1-4]{1}[0-9]{1}$|^50$" "111"
2432 "^[1-9]{1}$|^[1-4]{1}[0-9]{1}$|^50$" "xyz"
2433 "^([ \u00c0-\u01ffa-zA-Z'])+$" G "<0>Jon Doe</0>"
2434 "^([ \u00c0-\u01ffa-zA-Z'])+$" G "<0>J\u00f8rn</0>"
2435 "^([ \u00c0-\u01ffa-zA-Z'])+$" G "<0>Mc'Neelan</0>"
2436 "^([ \u00c0-\u01ffa-zA-Z'])+$" "Henry); hacking attempt"
2437 "^((([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>"
2438 "^((([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>"
2439 "^((([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>"
2440 "^((([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"
2441 "^((([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"
2442 "^((([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"
2443 "(^\d*\.?\d*[1-9]+\d*$)|(^[1-9]+\d*\.\d*$)" G "<0>0.050</0>"
2444 "(^\d*\.?\d*[1-9]+\d*$)|(^[1-9]+\d*\.\d*$)" G "<0>5.0000</0>"
2445 "(^\d*\.?\d*[1-9]+\d*$)|(^[1-9]+\d*\.\d*$)" G "<0>5000</0>"
2446 "(^\d*\.?\d*[1-9]+\d*$)|(^[1-9]+\d*\.\d*$)" "0"
2447 "(^\d*\.?\d*[1-9]+\d*$)|(^[1-9]+\d*\.\d*$)" "0.0"
2448 "(^\d*\.?\d*[1-9]+\d*$)|(^[1-9]+\d*\.\d*$)" ".0"
2449 "^([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>"
2450 "^([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>"
2451 "^([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>"
2452 "^([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"
2453 "^([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"
2454 "^([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"
2455 "^\{?[a-fA-F\d]{8}-([a-fA-F\d]{4}-){3}[a-fA-F\d]{12}\}?$" G "<0>{e02ff0e4-00ad-090A-c030-0d00a0008ba0}</0>"
2456 "^\{?[a-fA-F\d]{8}-([a-fA-F\d]{4}-){3}[a-fA-F\d]{12}\}?$" G "<0>e02ff0e4-00ad-090A-c030-0d00a0008ba0</0>"
2457 "^\{?[a-fA-F\d]{8}-([a-fA-F\d]{4}-){3}[a-fA-F\d]{12}\}?$" "0xe02ff0e400ad090Ac0300d00a0008ba0"
2458 "^\{?[a-fA-F0-9]{8}-([a-fA-F0-9]{4}-){3}[a-fA-F0-9]{12}\}?$" G "<0>{e02ff0e4-00ad-090A-c030-0d00a0008ba0}</0>"
2459 "^\{?[a-fA-F0-9]{8}-([a-fA-F0-9]{4}-){3}[a-fA-F0-9]{12}\}?$" G "<0>e02ff0e4-00ad-090A-c030-0d00a0008ba0</0>"
2460 "^\{?[a-fA-F0-9]{8}-([a-fA-F0-9]{4}-){3}[a-fA-F0-9]{12}\}?$" "0xe02ff0e400ad090Ac0300d00a0008ba0"
2461 "^([a-zA-Z0-9@*#]{8,15})$" G "<0>@12X*567</0>"
2462 "^([a-zA-Z0-9@*#]{8,15})$" G "<0>1#Zv96g@*Yfasd4</0>"
2463 "^([a-zA-Z0-9@*#]{8,15})$" G "<0>#67jhgt@erd</0>"
2464 "^([a-zA-Z0-9@*#]{8,15})$" "$12X*567"
2465 "^([a-zA-Z0-9@*#]{8,15})$" "1#Zv_96"
2466 "^([a-zA-Z0-9@*#]{8,15})$" "+678jhgt@erd"
2467 '(("|\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>'
2468 '(("|\u0027)[a-z0-9\/\.\?\=\&]*(\.htm|\.asp|\.php|\.jsp)[a-z0-9\/\.\?\=\&]*("|\u0027))|(href=*?[a-z0-9\/\.\?\=\&"\u0027]*)' G '<0>href="NuclearTesting.htm"</0>'
2469 '(("|\u0027)[a-z0-9\/\.\?\=\&]*(\.htm|\.asp|\.php|\.jsp)[a-z0-9\/\.\?\=\&]*("|\u0027))|(href=*?[a-z0-9\/\.\?\=\&"\u0027]*)' 'U Suck'
2470 "^(((((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>"
2471 "^(((((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>"
2472 "^(((((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>"
2473 "^(((((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"
2474 "^(((((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"
2475 "^(((((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"
2476 "^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$" G "<0>123456.123456</0>"
2477 "^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$" G "<0>123456,123456</0>"
2478 "^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$" G "<0>123456</0>"
2479 "^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$" "123a.123"
2480 "^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$" "123a,123"
2481 "^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$" "a"
2482 "^(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>"
2483 "^(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>"
2484 "^(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>"
2485 "^(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"
2486 "^(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"
2487 "^(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"
2488 "^[+]?\d*$" G "<0>0123456789</0>"
2489 "^[+]?\d*$" G "<0>1234</0>"
2490 "^[+]?\d*$" G "<0>1</0>"
2491 "^[+]?\d*$" "1.0?&"
2492 "^[+]?\d*$" "a1"
2493 "^[+]?\d*$" "2a-"
2494 #/<[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
2495 #/<[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.
2496 "^([0-1]?[0-9]|[2][0-3]):([0-5][0-9])$" G "<0>0:00</0>"
2497 "^([0-1]?[0-9]|[2][0-3]):([0-5][0-9])$" G "<0>23:00</0>"
2498 "^([0-1]?[0-9]|[2][0-3]):([0-5][0-9])$" G "<0>00:59</0>"
2499 "^([0-1]?[0-9]|[2][0-3]):([0-5][0-9])$" "0:0"
2500 "^([0-1]?[0-9]|[2][0-3]):([0-5][0-9])$" "24:00"
2501 "^([0-1]?[0-9]|[2][0-3]):([0-5][0-9])$" "00:60"
2502 "^((0[1-9])|(1[0-2]))\/(\d{2})$" G "<0>11/03</0>"
2503 "^((0[1-9])|(1[0-2]))\/(\d{2})$" G "<0>01/04</0>"
2504 "^((0[1-9])|(1[0-2]))\/(\d{2})$" "13/03"
2505 "^((0[1-9])|(1[0-2]))\/(\d{2})$" "10/2003"
2506 "<script[^>]*>[\w|\t|\r|\W]*</script>" G '<0><script language=javascript>document.write("one");</script></0>'
2507 "<script[^>]*>[\w|\t|\r|\W]*</script>" "--"
2508 "<script[^>]*>[\w|\t|\r|\W]*</script>" "A-Z][a-z]+"
2509 #"<script[^>]*>[\w|\t|\r|\W]*</script>" G "<0>strFirstName</0>" # Test Case damaged?
2510 #"<script[^>]*>[\w|\t|\r|\W]*</script>" G "<0>intAgeInYears</0>" # Test Case damaged?
2511 #"<script[^>]*>[\w|\t|\r|\W]*</script>" G "<0>Where the Wild Things Are</0>" # Test Case damaged?
2512 "<script[^>]*>[\w|\t|\r|\W]*</script>" "123"
2513 "<script[^>]*>[\w|\t|\r|\W]*</script>" "abc"
2514 "<script[^>]*>[\w|\t|\r|\W]*</script>" "this has no caps in it"
2515 "(^-\d*\.?\d*[1-9]+\d*$)|(^-[1-9]+\d*\.\d*$)" G "<0>-0.050</0>"
2516 "(^-\d*\.?\d*[1-9]+\d*$)|(^-[1-9]+\d*\.\d*$)" G "<0>-5.000</0>"
2517 "(^-\d*\.?\d*[1-9]+\d*$)|(^-[1-9]+\d*\.\d*$)" G "<0>-5</0>"
2518 "(^-\d*\.?\d*[1-9]+\d*$)|(^-[1-9]+\d*\.\d*$)" "0"
2519 "(^-\d*\.?\d*[1-9]+\d*$)|(^-[1-9]+\d*\.\d*$)" "0.0"
2520 "(^-\d*\.?\d*[1-9]+\d*$)|(^-[1-9]+\d*\.\d*$)" ".0"
2521 "^([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>"
2522 "^([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>"
2523 "^([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"
2524 "^([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"
2525 "^(\d|,)*\.?\d*$" G "<0>1,000</0>"
2526 "^(\d|,)*\.?\d*$" G "<0>3,000.05</0>"
2527 "^(\d|,)*\.?\d*$" G "<0>5,000,000</0>"
2528 "^(\d|,)*\.?\d*$" "abc"
2529 "^(\d|,)*\.?\d*$" "$100,000"
2530 "^(\d|,)*\.?\d*$" "Forty"
2531 "^\d$" G "<0>1</0>"
2532 "^\d$" G "<0>2</0>"
2533 "^\d$" G "<0>3</0>"
2534 "^\d$" "a"
2535 "^\d$" "324"
2536 "^\d$" "num"
2537 "^[0-9]+$" G "<0>1234567890</0>"
2538 "^[0-9]+$" G "<0>1234567890</0>"
2539 "^[0-9]+$" G "<0>1234567890</0>"
2540 "^[0-9]+$" "http://none"
2541 "^[0-9]+$" "http://none"
2542 "^[0-9]+$" "http://none"
2543 "^.{4,8}$" G "<0>asdf</0>"
2544 "^.{4,8}$" G "<0>1234</0>"
2545 "^.{4,8}$" G "<0>asdf1234</0>"
2546 "^.{4,8}$" "asd"
2547 "^.{4,8}$" "123"
2548 "^.{4,8}$" "asdfe12345"
2549 "^[\w\.=-]+@[\w\.-]+\.[\w]{2,3}$" G "<0>a@a.com</0>"
2550 "^[\w\.=-]+@[\w\.-]+\.[\w]{2,3}$" G "<0>a@a.com.au</0>"
2551 "^[\w\.=-]+@[\w\.-]+\.[\w]{2,3}$" G "<0>a@a.au</0>"
2552 "^[\w\.=-]+@[\w\.-]+\.[\w]{2,3}$" "word"
2553 "^[\w\.=-]+@[\w\.-]+\.[\w]{2,3}$" "word@"
2554 "^[\w\.=-]+@[\w\.-]+\.[\w]{2,3}$" "@word"
2555 "^\d{5}-\d{4}$" G "<0>22222-3333</0>"
2556 "^\d{5}-\d{4}$" G "<0>34545-2367</0>"
2557 "^\d{5}-\d{4}$" G "<0>56334-2343</0>"
2558 "^\d{5}-\d{4}$" "123456789"
2559 "^\d{5}-\d{4}$" "A3B 4C5"
2560 "^\d{5}-\d{4}$" "55335"
2561 "(a|b|c).(a.b)*.b+.c" G "<0>autbfc</0>"
2562 "(a|b|c).(a.b)*.b+.c" "attc"
2563 '"((\\")|[^"(\\")])+"' G '<0>"test"</0>'
2564 '"((\\")|[^"(\\")])+"' G '<0>"escape\"quote"</0>'
2565 '"((\\")|[^"(\\")])+"' G '<0>"\\""</0>'
2566 '"((\\")|[^"(\\")])+"' "test"
2567 '"((\\")|[^"(\\")])+"' '"test'
2568 '"((\\")|[^"(\\")])+"' '""test\\"'
2569 "((0[1-9])|(1[02]))/\d{2}" G "<0>01/00</0>"
2570 "((0[1-9])|(1[02]))/\d{2}" G "<0>12/99</0>"
2571 "((0[1-9])|(1[02]))/\d{2}" "13/00"
2572 "((0[1-9])|(1[02]))/\d{2}" "12/AS"
2573 "^[a-zA-Z]$" G "<0>a</0>"
2574 "^[a-zA-Z]$" G "<0>B</0>"
2575 "^[a-zA-Z]$" G "<0>c</0>"
2576 "^[a-zA-Z]$" "0"
2577 "^[a-zA-Z]$" "&"
2578 "^[a-zA-Z]$" "AbC"
2579 "^[a-zA-Z]+$" G "<0>abc</0>"
2580 "^[a-zA-Z]+$" G "<0>ABC</0>"
2581 "^[a-zA-Z]+$" G "<0>aBcDeF</0>"
2582 "^[a-zA-Z]+$" "abc123"
2583 "^[a-zA-Z]+$" "mr."
2584 "^[a-zA-Z]+$" "a word"
2585 "^\s*[a-zA-Z,\p{Zs}]+\s*$" G "<0>Smith, Ed</0>"
2586 "^\s*[a-zA-Z,\p{Zs}]+\s*$" G "<0>Ed Smith</0>"
2587 "^\s*[a-zA-Z,\p{Zs}]+\s*$" G "<0>aBcDeFgH</0>"
2588 "^\s*[a-zA-Z,\p{Zs}]+\s*$" "a123"
2589 "^\s*[a-zA-Z,\p{Zs}]+\s*$" "AB5"
2590 "^\s*[a-zA-Z,\p{Zs}]+\s*$" "Mr. Ed"
2591 "(\w+?@\w+?\u002E.+)" G "<0>bob@vsnl.com</0>"
2592 "(\w+?@\w+?\u002E.+)" "[AABB]"
2593 "^\d+$" G "<0>123</0>"
2594 "^\d+$" G "<0>10</0>"
2595 "^\d+$" G "<0>54</0>"
2596 "^\d+$" "-54"
2597 "^\d+$" "54.234"
2598 "^\d+$" "abc"
2599 "^(\+|-)?\d+$" G "<0>-34</0>"
2600 "^(\+|-)?\d+$" G "<0>34</0>"
2601 "^(\+|-)?\d+$" G "<0>+5</0>"
2602 "^(\+|-)?\d+$" "abc"
2603 "^(\+|-)?\d+$" "3.1415"
2604 "^(\+|-)?\d+$" "-5.3"
2605 "foo" G "<0>foo</0>"
2606 "foo" "bar"
2607 "^[1-5]$" G "<0>1</0>"
2608 "^[1-5]$" G "<0>3</0>"
2609 "^[1-5]$" G "<0>4</0>"
2610 "^[1-5]$" "6"
2611 "^[1-5]$" "23"
2612 "^[1-5]$" "a"
2613 "^[12345]$" G "<0>1</0>"
2614 "^[12345]$" G "<0>2</0>"
2615 "^[12345]$" G "<0>4</0>"
2616 "^[12345]$" "6"
2617 "^[12345]$" "-1"
2618 "^[12345]$" "abc"
2619 "^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$" G "<0>joe@aol.com</0>"
2620 "^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$" G "<0>joe@wrox.co.uk</0>"
2621 "^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$" G "<0>joe@domain.info</0>"
2622 "^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$" "a@b"
2623 "^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$" "notanemail"
2624 "^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$" "joe@@."
2625 "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$" G "<0>joe@aol.com</0>"
2626 "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$" G "<0>ssmith@aspalliance.com</0>"
2627 "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$" G "<0>a@b.cc</0>"
2628 "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$" "joe@123aspx.com"
2629 "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$" "joe@web.info"
2630 "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$" "joe@company.co.uk"
2631 "[\w-]+@([\w-]+\.)+[\w-]+" G "<0>joe@aol.com</0>"
2632 "[\w-]+@([\w-]+\.)+[\w-]+" G "<0>a@b.c</0>"
2633 "[\w-]+@([\w-]+\.)+[\w-]+" "asdf"
2634 "[\w-]+@([\w-]+\.)+[\w-]+" "1234"
2635 "\d{4}-?\d{4}-?\d{4}-?\d{4}" G "<0>1234-1234-1234-1234</0>"
2636 "\d{4}-?\d{4}-?\d{4}-?\d{4}" G "<0>1234123412341234</0>"
2637 "\d{4}-?\d{4}-?\d{4}-?\d{4}" "1234123412345"
2638 "^\d{5}$" G "<0>33333</0>"
2639 "^\d{5}$" G "<0>55555</0>"
2640 "^\d{5}$" G "<0>23445</0>"
2641 "^\d{5}$" "abcd"
2642 "^\d{5}$" "1324"
2643 "^\d{5}$" "as;lkjdf"
2644 "(\w+)\s+\1" G "<0>hubba hubba</0>"
2645 "(\w+)\s+\1" G "<0>mandate dated</0>"
2646 "(\w+)\s+\1" G "<0>an annual</0>"
2647 "(\w+)\s+\1" "may day"
2648 "(\w+)\s+\1" "gogo"
2649 "(\w+)\s+\1" "1212"
2650 "^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$" G "<0>3SquareBand.com</0>"
2651 "^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$" G "<0>asp.net</0>"
2652 "^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$" G "<0>army.mil</0>"
2653 "^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$" "$SquareBand.com"
2654 "^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$" "asp/dot.net"
2655 "^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$" "army.military"
2656