1: converted from the pcre testdata/testinput1 2001-06-15 2 3E the quick brown fox the quick brown fox (0,19) 4E SAME The quick brown FOX NOMATCH 5E SAME What do you know about the quick brown fox? (23,42) 6E SAME What do you know about THE QUICK BROWN FOX? NOMATCH 7Ei The quick brown fox the quick brown fox (0,19) 8Ei SAME The quick brown FOX (0,19) 9Ei SAME What do you know about the quick brown fox? (23,42) 10Ei SAME What do you know about THE QUICK BROWN FOX? (23,42) 11E$ abcd\\t\\n\\r\\f\\a\\e\\071\\x3b\\$\\\\\\?caxyz abcd\t\n\r\f\a\e9;$\\?caxyz (0,20) 12E a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz abxyzpqrrrabbxyyyypqAzz (0,23) 13E SAME abxyzpqrrrabbxyyyypqAzz (0,23) 14E SAME aabxyzpqrrrabbxyyyypqAzz (0,24) 15E SAME aaabxyzpqrrrabbxyyyypqAzz (0,25) 16E SAME aaaabxyzpqrrrabbxyyyypqAzz (0,26) 17E SAME abcxyzpqrrrabbxyyyypqAzz (0,24) 18E SAME aabcxyzpqrrrabbxyyyypqAzz (0,25) 19E SAME aaabcxyzpqrrrabbxyyyypAzz (0,25) 20E SAME aaabcxyzpqrrrabbxyyyypqAzz (0,26) 21E SAME aaabcxyzpqrrrabbxyyyypqqAzz (0,27) 22E SAME aaabcxyzpqrrrabbxyyyypqqqAzz (0,28) 23E SAME aaabcxyzpqrrrabbxyyyypqqqqAzz (0,29) 24E SAME aaabcxyzpqrrrabbxyyyypqqqqqAzz (0,30) 25E SAME aaabcxyzpqrrrabbxyyyypqqqqqqAzz (0,31) 26E SAME aaaabcxyzpqrrrabbxyyyypqAzz (0,27) 27E SAME abxyzzpqrrrabbxyyyypqAzz (0,24) 28E SAME aabxyzzzpqrrrabbxyyyypqAzz (0,26) 29E SAME aaabxyzzzzpqrrrabbxyyyypqAzz (0,28) 30E SAME aaaabxyzzzzpqrrrabbxyyyypqAzz (0,29) 31E SAME abcxyzzpqrrrabbxyyyypqAzz (0,25) 32E SAME aabcxyzzzpqrrrabbxyyyypqAzz (0,27) 33E SAME aaabcxyzzzzpqrrrabbxyyyypqAzz (0,29) 34E SAME aaaabcxyzzzzpqrrrabbxyyyypqAzz (0,30) 35E SAME aaaabcxyzzzzpqrrrabbbxyyyypqAzz (0,31) 36E SAME aaaabcxyzzzzpqrrrabbbxyyyyypqAzz (0,32) 37E SAME aaabcxyzpqrrrabbxyyyypABzz (0,26) 38E SAME aaabcxyzpqrrrabbxyyyypABBzz (0,27) 39E SAME >>>aaabxyzpqrrrabbxyyyypqAzz (3,28) 40E SAME >aaaabxyzpqrrrabbxyyyypqAzz (1,27) 41E SAME >>>>abcxyzpqrrrabbxyyyypqAzz (4,28) 42E SAME abxyzpqrrabbxyyyypqAzz NOMATCH 43E SAME abxyzpqrrrrabbxyyyypqAzz NOMATCH 44E SAME abxyzpqrrrabxyyyypqAzz NOMATCH 45E SAME aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz NOMATCH 46E SAME aaaabcxyzzzzpqrrrabbbxyyypqAzz NOMATCH 47E SAME aaabcxyzpqrrrabbxyyyypqqqqqqqAzz NOMATCH 48E ^(abc){1,2}zz abczz (0,5)(0,3) 49E SAME abcabczz (0,8)(3,6) 50E SAME zz NOMATCH 51E SAME abcabcabczz NOMATCH 52E SAME >>abczz NOMATCH 53E ^(b+?|a){1,2}?c bc (0,2)(0,1) 54E SAME bbc (0,3)(1,2) 55E SAME bbbc (0,4)(1,3) 56E SAME bac (0,3)(1,2) 57E SAME bbac (0,4)(2,3) 58E SAME aac (0,3)(1,2) 59E SAME abbbbbbbbbbbc (0,13)(1,12) 60E SAME bbbbbbbbbbbac (0,13)(11,12) 61E SAME aaac NOMATCH 62E SAME abbbbbbbbbbbac NOMATCH 63E ^(b+|a){1,2}c bc (0,2)(0,1) 64E SAME bbc (0,3)(0,2) 65E SAME bbbc (0,4)(0,3) 66E SAME bac (0,3)(1,2) 67E SAME bbac (0,4)(2,3) 68E SAME aac (0,3)(1,2) 69E SAME abbbbbbbbbbbc (0,13)(1,12) 70E SAME bbbbbbbbbbbac (0,13)(11,12) 71E SAME aaac NOMATCH 72E SAME abbbbbbbbbbbac NOMATCH 73E ^(b+|a){1,2}?bc bbc (0,3)(0,1) 74E ^(b*|ba){1,2}?bc babc (0,4)(0,2) 75E SAME bbabc (0,5)(1,3) 76E SAME bababc (0,6)(2,4) 77E SAME bababbc NOMATCH 78E SAME babababc NOMATCH 79E ^(ba|b*){1,2}?bc babc (0,4)(0,2) 80E SAME bbabc (0,5)(1,3) 81E SAME bababc (0,6)(2,4) 82E SAME bababbc NOMATCH 83E SAME babababc NOMATCH 84E$ ^\\ca\\cA\\c[\\c{\\c: \x01\x01\e;z (0,5) 85E$kv ^[ab\\]cde] athing (0,1) 86E$kv SAME bthing (0,1) 87E$kv SAME ]thing (0,1) 88E$kv SAME cthing (0,1) 89E$kv SAME dthing (0,1) 90E$kv SAME ething (0,1) 91E$kv SAME fthing NOMATCH 92E$kv SAME [thing NOMATCH 93E$kv SAME \\thing NOMATCH 94E ^[]cde] ]thing (0,1) 95E SAME cthing (0,1) 96E SAME dthing (0,1) 97E SAME ething (0,1) 98E SAME athing NOMATCH 99E SAME fthing NOMATCH 100E$kv ^[^ab\\]cde] fthing (0,1) 101E$kv SAME [thing (0,1) 102E$kv SAME \\thing (0,1) 103E$kv SAME athing NOMATCH 104E$kv SAME bthing NOMATCH 105E$kv SAME ]thing NOMATCH 106E$kv SAME cthing NOMATCH 107E$kv SAME dthing NOMATCH 108E$kv SAME ething NOMATCH 109E ^[^]cde] athing (0,1) 110E SAME fthing (0,1) 111E SAME ]thing NOMATCH 112E SAME cthing NOMATCH 113E SAME dthing NOMATCH 114E SAME ething NOMATCH 115E$x ^\\� � (0,1) 116E ^� � (0,1) 117E ^[0-9]+$ 0 (0,1) 118E SAME 1 (0,1) 119E SAME 2 (0,1) 120E SAME 3 (0,1) 121E SAME 4 (0,1) 122E SAME 5 (0,1) 123E SAME 6 (0,1) 124E SAME 7 (0,1) 125E SAME 8 (0,1) 126E SAME 9 (0,1) 127E SAME 10 (0,2) 128E SAME 100 (0,3) 129E SAME abc NOMATCH 130E ^.*nter enter (0,5) 131E SAME inter (0,5) 132E SAME uponter (0,7) 133E ^xxx[0-9]+$ xxx0 (0,4) 134E SAME xxx1234 (0,7) 135E SAME xxx NOMATCH 136E ^.+[0-9][0-9][0-9]$ x123 (0,4) 137E SAME xx123 (0,5) 138E SAME 123456 (0,6) 139E SAME 123 NOMATCH 140E SAME x1234 (0,5) 141E ^.+?[0-9][0-9][0-9]$ x123 (0,4) 142E SAME xx123 (0,5) 143E SAME 123456 (0,6) 144E SAME 123 NOMATCH 145E SAME x1234 (0,5) 146E$ ^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$ abc!pqr=apquxz.ixr.zzz.ac.uk (0,28)(0,3)(4,7) 147E$ SAME !pqr=apquxz.ixr.zzz.ac.uk NOMATCH 148E$ SAME abc!=apquxz.ixr.zzz.ac.uk NOMATCH 149E$ SAME abc!pqr=apquxz:ixr.zzz.ac.uk NOMATCH 150E$ SAME abc!pqr=apquxz.ixr.zzz.ac.ukk NOMATCH 151E : Well, we need a colon: somewhere (21,22) 152E SAME *** Fail if we don't NOMATCH 153E$iv ([\\da-f:]+)$ 0abc (0,4)(0,4) 154E$iv SAME abc (0,3)(0,3) 155E$iv SAME fed (0,3)(0,3) 156E$iv SAME E (0,1)(0,1) 157E$iv SAME :: (0,2)(0,2) 158E$iv SAME 5f03:12C0::932e (0,15)(0,15) 159E$iv SAME fed def (4,7)(4,7) 160E$iv SAME Any old stuff (11,13)(11,13) 161E$iv SAME 0zzz NOMATCH 162E$iv SAME gzzz NOMATCH 163E$iv SAME fed\x20 NOMATCH 164E$iv SAME Any old rubbish NOMATCH 165E$ ^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$ .1.2.3 (0,6)(1,2)(3,4)(5,6) 166E$ SAME A.12.123.0 (0,10)(2,4)(5,8)(9,10) 167E$ SAME .1.2.3333 NOMATCH 168E$ SAME 1.2.3 NOMATCH 169E$ SAME 1234.2.3 NOMATCH 170E$ ^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$ 1 IN SOA non-sp1 non-sp2( (0,25)(0,1)(9,16)(17,24) 171E$ SAME 1 IN SOA non-sp1 non-sp2 ( (0,40)(0,1)(18,25)(29,36) 172E$ SAME 1IN SOA non-sp1 non-sp2( NOMATCH 173E$kv ^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$ a. (0,2) 174E$kv SAME Z. (0,2) 175E$kv SAME 2. (0,2) 176E$kv SAME ab-c.pq-r. (0,10)(4,9) 177E$kv SAME sxk.zzz.ac.uk. (0,14)(10,13) 178E$kv SAME x-.y-. (0,6)(2,5) 179E$kv SAME -abc.peq. NOMATCH 180E$kv ^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$ *.a (0,3) 181E$kv SAME *.b0-a (0,6)(3,6) 182E$kv SAME *.c3-b.c (0,8)(3,6)(6,8) 183E$kv SAME *.c-a.b-c (0,9)(3,5)(5,9)(7,9) 184E$kv SAME *.0 NOMATCH 185E$kv SAME *.a- NOMATCH 186E$kv SAME *.a-b.c- NOMATCH 187E$kv SAME *.c-a.0-c NOMATCH 188E ^(?=ab(de))(abd)(e) abde (0,4)(2,4)(0,3)(3,4) 189E ^(?!(ab)de|x)(abd)(f) abdf (0,4)(?,?)(0,3)(3,4) 190E ^(?=(ab(cd)))(ab) abcd (0,2)(0,4)(2,4)(0,2) 191E$iv ^[\\da-f](\\.[\\da-f])*$ a.b.c.d (0,7)(5,7) 192E$iv SAME A.B.C.D (0,7)(5,7) 193E$iv SAME a.b.c.1.2.3.C (0,13)(11,13) 194E$ ^".*"\\s*(;.*)?$ "1234" (0,6) 195E$ SAME "abcd" ; (0,8)(7,8) 196E$ SAME "" ; rhubarb (0,12)(3,12) 197E$ SAME "1234" : things NOMATCH 198E$ ^$ NULL (0,0) 199E$c ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end) ab c (0,4) 200E$c SAME abc NOMATCH 201E$c SAME ab cde NOMATCH 202E$ (?x) ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end) ab c (0,4) 203E$ SAME abc NOMATCH 204E$ SAME ab cde NOMATCH 205E$c ^ a\\ b[c ]d $ a bcd (0,5) 206E$c SAME a b d (0,5) 207E$c SAME abcd NOMATCH 208E$c SAME ab d NOMATCH 209E ^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$ abcdefhijklm (0,12)(0,3)(1,3)(2,3)(3,6)(4,6)(5,6)(6,9)(7,9)(8,9)(9,12)(10,12)(11,12) 210E ^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$ abcdefhijklm (0,12)(1,3)(2,3)(4,6)(5,6)(7,9)(8,9)(10,12)(11,12) 211E$v ^[\\w][\\W][\\s][\\S][\\d][\\D][\\f][\\n][\\c]][\\022] a+ Z0+\x0c\n\x1d\x12 (0,10) 212E$ ^[.^$|()*+?{,}]+ .^$(*+)|{?,?} (0,13) 213E$ ^a*\\w z (0,1) 214E$ SAME az (0,2) 215E$ SAME aaaz (0,4) 216E$ SAME a (0,1) 217E$ SAME aa (0,2) 218E$ SAME aaaa (0,4) 219E$ SAME a+ (0,1) 220E$ SAME aa+ (0,2) 221E$ ^a*?\\w z (0,1) 222E$ SAME az (0,1) 223E$ SAME aaaz (0,1) 224E$ SAME a (0,1) 225E$ SAME aa (0,1) 226E$ SAME aaaa (0,1) 227E$ SAME a+ (0,1) 228E$ SAME aa+ (0,1) 229E$ ^a+\\w az (0,2) 230E$ SAME aaaz (0,4) 231E$ SAME aa (0,2) 232E$ SAME aaaa (0,4) 233E$ SAME aa+ (0,2) 234E$ ^a+?\\w az (0,2) 235E$ SAME aaaz (0,2) 236E$ SAME aa (0,2) 237E$ SAME aaaa (0,2) 238E$ SAME aa+ (0,2) 239E$ ^\\d{8}\\w{2,} 1234567890 (0,10) 240E$ SAME 12345678ab (0,10) 241E$ SAME 12345678__ (0,10) 242E$ SAME 1234567 NOMATCH 243E$v ^[aeiou\\d]{4,5}$ uoie (0,4) 244E$v SAME 1234 (0,4) 245E$v SAME 12345 (0,5) 246E$v SAME aaaaa (0,5) 247E$v SAME 123456 NOMATCH 248E$v ^[aeiou\\d]{4,5}? uoie (0,4) 249E$v SAME 1234 (0,4) 250E$v SAME 12345 (0,4) 251E$v SAME aaaaa (0,4) 252E$v SAME 123456 (0,4) 253E$ \\A(abc|def)=(\\1){2,3}\\Z abc=abcabc (0,10)(0,3)(7,10) 254E$ SAME def=defdefdef (0,13)(0,3)(10,13) 255E$ SAME abc=defdef NOMATCH 256E$h ^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\11*(\\3\\4)\\1(?#)2$ abcdefghijkcda2 (0,15)(0,1)(1,2)(2,3)(3,4)(4,5)(5,6)(6,7)(7,8)(8,9)(9,10)(10,11)(11,13) 257E$h SAME abcdefghijkkkkcda2 (0,18)(0,1)(1,2)(2,3)(3,4)(4,5)(5,6)(6,7)(7,8)(8,9)(9,10)(10,11)(14,16) 258E$ ^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(?11)*((?3)(?4))(?1)(?#)2$ abcdefghijkcda2 (0,15)(0,1)(1,2)(2,3)(3,4)(4,5)(5,6)(6,7)(7,8)(8,9)(9,10)(10,11)(11,13) 259E$ SAME abcdefghijkkkkcda2 (0,18)(0,1)(1,2)(2,3)(3,4)(4,5)(5,6)(6,7)(7,8)(8,9)(9,10)(10,11)(14,16) 260E$z (cat(a(ract|tonic)|erpillar)) \\1()2(3) cataract cataract23 (0,19)(0,8)(3,8)(4,8)(17,17)(18,19) 261E$z SAME catatonic catatonic23 (0,21)(0,9)(3,9)(4,9)(19,19)(20,21) 262E$z SAME caterpillar caterpillar23 (0,25)(0,11)(3,11)(?,?)(23,23)(24,25) 263E ^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9] From abcd Mon Sep 01 12:33:02 1997 (0,27)(5,9) 264E$ ^From\\s+\\S+\\s+([a-zA-Z]{3}\\s+){2}\\d{1,2}\\s+\\d\\d:\\d\\d From abcd Mon Sep 01 12:33:02 1997 (0,27)(15,19) 265E$ SAME From abcd Mon Sep 1 12:33:02 1997 (0,27)(15,20) 266E$ SAME From abcd Sep 01 12:33:02 1997 NOMATCH 267Ej$ ^12.34 12\n34 (0,5) 268Ej$ SAME 12\r34 (0,5) 269E$ \\w+(?=\\t) the quick brown\t fox (10,15) 270E foo(?!bar)(.*) foobar is foolish see? (10,22)(13,22) 271E (?:(?!foo)...|^.{0,2})bar(.*) foobar crowbar etc (8,18)(14,18) 272E SAME barrel (0,6)(3,6) 273E SAME 2barrel (0,7)(4,7) 274E SAME A barrel (0,8)(5,8) 275E$ ^(\\D*)(?=\\d)(?!123) abc456 (0,3)(0,3) 276E$ SAME abc123 NOMATCH 277E$ ^1234(?# test newlines\n\ 278 inside) 1234 (0,4) 279E$c ^1234 #comment in extended re\n\ 280 1234 (0,4) 281E$c #rhubarb\n\ 282 abcd abcd (0,4) 283Ec ^abcd#rhubarb abcd (0,4) 284E$ ^(a)\\1{2,3}(.) aaab (0,4)(0,1)(3,4) 285E$ SAME aaaab (0,5)(0,1)(4,5) 286E$ SAME aaaaab (0,5)(0,1)(4,5) 287E$ SAME aaaaaab (0,5)(0,1)(4,5) 288E (?!^)abc the abc (4,7) 289E SAME abc NOMATCH 290E (?=^)abc abc (0,3) 291E SAME the abc NOMATCH 292E ^[ab]{1,3}(ab*|b) aabbbbb (0,7)(1,7) 293E ^[ab]{1,3}?(ab*|b) aabbbbb (0,7)(1,7) 294E ^[ab]{1,3}?(ab*?|b) aabbbbb (0,2)(1,2) 295E ^[ab]{1,3}(ab*?|b) aabbbbb (0,4)(3,4) 296E$ckv (?: [\\040\\t] | \\(\n\ 297(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 298\\) )* # optional leading comment\n\ 299(?: (?:\n\ 300[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 301(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 302|\n\ 303" (?: # opening quote...\n\ 304[^\\\\\\x80-\\xff\\n\\015"] # Anything except backslash and quote\n\ 305| # or\n\ 306\\\\ [^\\x80-\\xff] # Escaped something (something != CR)\n\ 307)* " # closing quote\n\ 308) # initial word\n\ 309(?: (?: [\\040\\t] | \\(\n\ 310(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 311\\) )* \\. (?: [\\040\\t] | \\(\n\ 312(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 313\\) )* (?:\n\ 314[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 315(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 316|\n\ 317" (?: # opening quote...\n\ 318[^\\\\\\x80-\\xff\\n\\015"] # Anything except backslash and quote\n\ 319| # or\n\ 320\\\\ [^\\x80-\\xff] # Escaped something (something != CR)\n\ 321)* " # closing quote\n\ 322) )* # further okay, if led by a period\n\ 323(?: [\\040\\t] | \\(\n\ 324(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 325\\) )* @ (?: [\\040\\t] | \\(\n\ 326(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 327\\) )* (?:\n\ 328[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 329(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 330| \\[ # [\n\ 331(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff\n\ 332\\] # ]\n\ 333) # initial subdomain\n\ 334(?: #\n\ 335(?: [\\040\\t] | \\(\n\ 336(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 337\\) )* \\. # if led by a period...\n\ 338(?: [\\040\\t] | \\(\n\ 339(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 340\\) )* (?:\n\ 341[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 342(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 343| \\[ # [\n\ 344(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff\n\ 345\\] # ]\n\ 346) # ...further okay\n\ 347)*\n\ 348# address\n\ 349| # or\n\ 350(?:\n\ 351[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 352(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 353|\n\ 354" (?: # opening quote...\n\ 355[^\\\\\\x80-\\xff\\n\\015"] # Anything except backslash and quote\n\ 356| # or\n\ 357\\\\ [^\\x80-\\xff] # Escaped something (something != CR)\n\ 358)* " # closing quote\n\ 359) # one word, optionally followed by....\n\ 360(?:\n\ 361[^()<>@,;:".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or...\n\ 362\\(\n\ 363(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 364\\) | # comments, or...\n\ 365\n\ 366" (?: # opening quote...\n\ 367[^\\\\\\x80-\\xff\\n\\015"] # Anything except backslash and quote\n\ 368| # or\n\ 369\\\\ [^\\x80-\\xff] # Escaped something (something != CR)\n\ 370)* " # closing quote\n\ 371# quoted strings\n\ 372)*\n\ 373< (?: [\\040\\t] | \\(\n\ 374(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 375\\) )* # leading <\n\ 376(?: @ (?: [\\040\\t] | \\(\n\ 377(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 378\\) )* (?:\n\ 379[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 380(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 381| \\[ # [\n\ 382(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff\n\ 383\\] # ]\n\ 384) # initial subdomain\n\ 385(?: #\n\ 386(?: [\\040\\t] | \\(\n\ 387(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 388\\) )* \\. # if led by a period...\n\ 389(?: [\\040\\t] | \\(\n\ 390(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 391\\) )* (?:\n\ 392[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 393(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 394| \\[ # [\n\ 395(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff\n\ 396\\] # ]\n\ 397) # ...further okay\n\ 398)*\n\ 399\n\ 400(?: (?: [\\040\\t] | \\(\n\ 401(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 402\\) )* , (?: [\\040\\t] | \\(\n\ 403(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 404\\) )* @ (?: [\\040\\t] | \\(\n\ 405(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 406\\) )* (?:\n\ 407[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 408(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 409| \\[ # [\n\ 410(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff\n\ 411\\] # ]\n\ 412) # initial subdomain\n\ 413(?: #\n\ 414(?: [\\040\\t] | \\(\n\ 415(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 416\\) )* \\. # if led by a period...\n\ 417(?: [\\040\\t] | \\(\n\ 418(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 419\\) )* (?:\n\ 420[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 421(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 422| \\[ # [\n\ 423(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff\n\ 424\\] # ]\n\ 425) # ...further okay\n\ 426)*\n\ 427)* # further okay, if led by comma\n\ 428: # closing colon\n\ 429(?: [\\040\\t] | \\(\n\ 430(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 431\\) )* )? # optional route\n\ 432(?:\n\ 433[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 434(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 435|\n\ 436" (?: # opening quote...\n\ 437[^\\\\\\x80-\\xff\\n\\015"] # Anything except backslash and quote\n\ 438| # or\n\ 439\\\\ [^\\x80-\\xff] # Escaped something (something != CR)\n\ 440)* " # closing quote\n\ 441) # initial word\n\ 442(?: (?: [\\040\\t] | \\(\n\ 443(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 444\\) )* \\. (?: [\\040\\t] | \\(\n\ 445(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 446\\) )* (?:\n\ 447[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 448(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 449|\n\ 450" (?: # opening quote...\n\ 451[^\\\\\\x80-\\xff\\n\\015"] # Anything except backslash and quote\n\ 452| # or\n\ 453\\\\ [^\\x80-\\xff] # Escaped something (something != CR)\n\ 454)* " # closing quote\n\ 455) )* # further okay, if led by a period\n\ 456(?: [\\040\\t] | \\(\n\ 457(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 458\\) )* @ (?: [\\040\\t] | \\(\n\ 459(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 460\\) )* (?:\n\ 461[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 462(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 463| \\[ # [\n\ 464(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff\n\ 465\\] # ]\n\ 466) # initial subdomain\n\ 467(?: #\n\ 468(?: [\\040\\t] | \\(\n\ 469(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 470\\) )* \\. # if led by a period...\n\ 471(?: [\\040\\t] | \\(\n\ 472(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 473\\) )* (?:\n\ 474[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 475(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 476| \\[ # [\n\ 477(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff\n\ 478\\] # ]\n\ 479) # ...further okay\n\ 480)*\n\ 481# address spec\n\ 482(?: [\\040\\t] | \\(\n\ 483(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 484\\) )* > # trailing >\n\ 485# name and address\n\ 486) (?: [\\040\\t] | \\(\n\ 487(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*\n\ 488\\) )* # optional trailing comment\n\ 489 Alan Other <user@dom.ain> (0,25) 490E$ckv SAME <user@dom.ain> (1,13) 491E$ckv SAME user@dom.ain (0,12) 492E$ckv SAME "A. Other" <user.1234@dom.ain> (a comment) (0,42) 493E$ckv SAME A. Other <user.1234@dom.ain> (a comment) (2,40) 494E$ckv SAME "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay (0,61) 495E$ckv SAME A missing angle <user@some.where (17,32) 496E$ckv SAME The quick brown fox NOMATCH 497E$ckv [\\040\\t]* # Nab whitespace.\n\ 498(?:\n\ 499\\( # (\n\ 500[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 501(?: # (\n\ 502(?: \\\\ [^\\x80-\\xff] |\n\ 503\\( # (\n\ 504[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 505(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 506\\) # )\n\ 507) # special\n\ 508[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 509)* # )*\n\ 510\\) # )\n\ 511[\\040\\t]* )* # If comment found, allow more spaces.\n\ 512# optional leading comment\n\ 513(?:\n\ 514(?:\n\ 515[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 516(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 517# Atom\n\ 518| # or\n\ 519" # "\n\ 520[^\\\\\\x80-\\xff\\n\\015"] * # normal\n\ 521(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015"] * )* # ( special normal* )*\n\ 522" # "\n\ 523# Quoted string\n\ 524)\n\ 525[\\040\\t]* # Nab whitespace.\n\ 526(?:\n\ 527\\( # (\n\ 528[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 529(?: # (\n\ 530(?: \\\\ [^\\x80-\\xff] |\n\ 531\\( # (\n\ 532[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 533(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 534\\) # )\n\ 535) # special\n\ 536[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 537)* # )*\n\ 538\\) # )\n\ 539[\\040\\t]* )* # If comment found, allow more spaces.\n\ 540(?:\n\ 541\\.\n\ 542[\\040\\t]* # Nab whitespace.\n\ 543(?:\n\ 544\\( # (\n\ 545[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 546(?: # (\n\ 547(?: \\\\ [^\\x80-\\xff] |\n\ 548\\( # (\n\ 549[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 550(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 551\\) # )\n\ 552) # special\n\ 553[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 554)* # )*\n\ 555\\) # )\n\ 556[\\040\\t]* )* # If comment found, allow more spaces.\n\ 557(?:\n\ 558[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 559(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 560# Atom\n\ 561| # or\n\ 562" # "\n\ 563[^\\\\\\x80-\\xff\\n\\015"] * # normal\n\ 564(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015"] * )* # ( special normal* )*\n\ 565" # "\n\ 566# Quoted string\n\ 567)\n\ 568[\\040\\t]* # Nab whitespace.\n\ 569(?:\n\ 570\\( # (\n\ 571[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 572(?: # (\n\ 573(?: \\\\ [^\\x80-\\xff] |\n\ 574\\( # (\n\ 575[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 576(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 577\\) # )\n\ 578) # special\n\ 579[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 580)* # )*\n\ 581\\) # )\n\ 582[\\040\\t]* )* # If comment found, allow more spaces.\n\ 583# additional words\n\ 584)*\n\ 585@\n\ 586[\\040\\t]* # Nab whitespace.\n\ 587(?:\n\ 588\\( # (\n\ 589[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 590(?: # (\n\ 591(?: \\\\ [^\\x80-\\xff] |\n\ 592\\( # (\n\ 593[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 594(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 595\\) # )\n\ 596) # special\n\ 597[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 598)* # )*\n\ 599\\) # )\n\ 600[\\040\\t]* )* # If comment found, allow more spaces.\n\ 601(?:\n\ 602[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 603(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 604|\n\ 605\\[ # [\n\ 606(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff\n\ 607\\] # ]\n\ 608)\n\ 609[\\040\\t]* # Nab whitespace.\n\ 610(?:\n\ 611\\( # (\n\ 612[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 613(?: # (\n\ 614(?: \\\\ [^\\x80-\\xff] |\n\ 615\\( # (\n\ 616[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 617(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 618\\) # )\n\ 619) # special\n\ 620[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 621)* # )*\n\ 622\\) # )\n\ 623[\\040\\t]* )* # If comment found, allow more spaces.\n\ 624# optional trailing comments\n\ 625(?:\n\ 626\\.\n\ 627[\\040\\t]* # Nab whitespace.\n\ 628(?:\n\ 629\\( # (\n\ 630[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 631(?: # (\n\ 632(?: \\\\ [^\\x80-\\xff] |\n\ 633\\( # (\n\ 634[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 635(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 636\\) # )\n\ 637) # special\n\ 638[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 639)* # )*\n\ 640\\) # )\n\ 641[\\040\\t]* )* # If comment found, allow more spaces.\n\ 642(?:\n\ 643[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 644(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 645|\n\ 646\\[ # [\n\ 647(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff\n\ 648\\] # ]\n\ 649)\n\ 650[\\040\\t]* # Nab whitespace.\n\ 651(?:\n\ 652\\( # (\n\ 653[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 654(?: # (\n\ 655(?: \\\\ [^\\x80-\\xff] |\n\ 656\\( # (\n\ 657[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 658(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 659\\) # )\n\ 660) # special\n\ 661[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 662)* # )*\n\ 663\\) # )\n\ 664[\\040\\t]* )* # If comment found, allow more spaces.\n\ 665# optional trailing comments\n\ 666)*\n\ 667# address\n\ 668| # or\n\ 669(?:\n\ 670[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 671(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 672# Atom\n\ 673| # or\n\ 674" # "\n\ 675[^\\\\\\x80-\\xff\\n\\015"] * # normal\n\ 676(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015"] * )* # ( special normal* )*\n\ 677" # "\n\ 678# Quoted string\n\ 679)\n\ 680# leading word\n\ 681[^()<>@,;:".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # "normal" atoms and or spaces\n\ 682(?:\n\ 683(?:\n\ 684\\( # (\n\ 685[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 686(?: # (\n\ 687(?: \\\\ [^\\x80-\\xff] |\n\ 688\\( # (\n\ 689[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 690(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 691\\) # )\n\ 692) # special\n\ 693[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 694)* # )*\n\ 695\\) # )\n\ 696|\n\ 697" # "\n\ 698[^\\\\\\x80-\\xff\\n\\015"] * # normal\n\ 699(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015"] * )* # ( special normal* )*\n\ 700" # "\n\ 701) # "special" comment or quoted string\n\ 702[^()<>@,;:".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more "normal"\n\ 703)*\n\ 704<\n\ 705[\\040\\t]* # Nab whitespace.\n\ 706(?:\n\ 707\\( # (\n\ 708[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 709(?: # (\n\ 710(?: \\\\ [^\\x80-\\xff] |\n\ 711\\( # (\n\ 712[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 713(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 714\\) # )\n\ 715) # special\n\ 716[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 717)* # )*\n\ 718\\) # )\n\ 719[\\040\\t]* )* # If comment found, allow more spaces.\n\ 720# <\n\ 721(?:\n\ 722@\n\ 723[\\040\\t]* # Nab whitespace.\n\ 724(?:\n\ 725\\( # (\n\ 726[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 727(?: # (\n\ 728(?: \\\\ [^\\x80-\\xff] |\n\ 729\\( # (\n\ 730[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 731(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 732\\) # )\n\ 733) # special\n\ 734[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 735)* # )*\n\ 736\\) # )\n\ 737[\\040\\t]* )* # If comment found, allow more spaces.\n\ 738(?:\n\ 739[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 740(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 741|\n\ 742\\[ # [\n\ 743(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff\n\ 744\\] # ]\n\ 745)\n\ 746[\\040\\t]* # Nab whitespace.\n\ 747(?:\n\ 748\\( # (\n\ 749[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 750(?: # (\n\ 751(?: \\\\ [^\\x80-\\xff] |\n\ 752\\( # (\n\ 753[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 754(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 755\\) # )\n\ 756) # special\n\ 757[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 758)* # )*\n\ 759\\) # )\n\ 760[\\040\\t]* )* # If comment found, allow more spaces.\n\ 761# optional trailing comments\n\ 762(?:\n\ 763\\.\n\ 764[\\040\\t]* # Nab whitespace.\n\ 765(?:\n\ 766\\( # (\n\ 767[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 768(?: # (\n\ 769(?: \\\\ [^\\x80-\\xff] |\n\ 770\\( # (\n\ 771[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 772(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 773\\) # )\n\ 774) # special\n\ 775[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 776)* # )*\n\ 777\\) # )\n\ 778[\\040\\t]* )* # If comment found, allow more spaces.\n\ 779(?:\n\ 780[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 781(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 782|\n\ 783\\[ # [\n\ 784(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff\n\ 785\\] # ]\n\ 786)\n\ 787[\\040\\t]* # Nab whitespace.\n\ 788(?:\n\ 789\\( # (\n\ 790[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 791(?: # (\n\ 792(?: \\\\ [^\\x80-\\xff] |\n\ 793\\( # (\n\ 794[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 795(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 796\\) # )\n\ 797) # special\n\ 798[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 799)* # )*\n\ 800\\) # )\n\ 801[\\040\\t]* )* # If comment found, allow more spaces.\n\ 802# optional trailing comments\n\ 803)*\n\ 804(?: ,\n\ 805[\\040\\t]* # Nab whitespace.\n\ 806(?:\n\ 807\\( # (\n\ 808[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 809(?: # (\n\ 810(?: \\\\ [^\\x80-\\xff] |\n\ 811\\( # (\n\ 812[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 813(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 814\\) # )\n\ 815) # special\n\ 816[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 817)* # )*\n\ 818\\) # )\n\ 819[\\040\\t]* )* # If comment found, allow more spaces.\n\ 820@\n\ 821[\\040\\t]* # Nab whitespace.\n\ 822(?:\n\ 823\\( # (\n\ 824[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 825(?: # (\n\ 826(?: \\\\ [^\\x80-\\xff] |\n\ 827\\( # (\n\ 828[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 829(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 830\\) # )\n\ 831) # special\n\ 832[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 833)* # )*\n\ 834\\) # )\n\ 835[\\040\\t]* )* # If comment found, allow more spaces.\n\ 836(?:\n\ 837[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 838(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 839|\n\ 840\\[ # [\n\ 841(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff\n\ 842\\] # ]\n\ 843)\n\ 844[\\040\\t]* # Nab whitespace.\n\ 845(?:\n\ 846\\( # (\n\ 847[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 848(?: # (\n\ 849(?: \\\\ [^\\x80-\\xff] |\n\ 850\\( # (\n\ 851[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 852(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 853\\) # )\n\ 854) # special\n\ 855[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 856)* # )*\n\ 857\\) # )\n\ 858[\\040\\t]* )* # If comment found, allow more spaces.\n\ 859# optional trailing comments\n\ 860(?:\n\ 861\\.\n\ 862[\\040\\t]* # Nab whitespace.\n\ 863(?:\n\ 864\\( # (\n\ 865[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 866(?: # (\n\ 867(?: \\\\ [^\\x80-\\xff] |\n\ 868\\( # (\n\ 869[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 870(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 871\\) # )\n\ 872) # special\n\ 873[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 874)* # )*\n\ 875\\) # )\n\ 876[\\040\\t]* )* # If comment found, allow more spaces.\n\ 877(?:\n\ 878[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 879(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 880|\n\ 881\\[ # [\n\ 882(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff\n\ 883\\] # ]\n\ 884)\n\ 885[\\040\\t]* # Nab whitespace.\n\ 886(?:\n\ 887\\( # (\n\ 888[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 889(?: # (\n\ 890(?: \\\\ [^\\x80-\\xff] |\n\ 891\\( # (\n\ 892[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 893(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 894\\) # )\n\ 895) # special\n\ 896[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 897)* # )*\n\ 898\\) # )\n\ 899[\\040\\t]* )* # If comment found, allow more spaces.\n\ 900# optional trailing comments\n\ 901)*\n\ 902)* # additional domains\n\ 903:\n\ 904[\\040\\t]* # Nab whitespace.\n\ 905(?:\n\ 906\\( # (\n\ 907[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 908(?: # (\n\ 909(?: \\\\ [^\\x80-\\xff] |\n\ 910\\( # (\n\ 911[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 912(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 913\\) # )\n\ 914) # special\n\ 915[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 916)* # )*\n\ 917\\) # )\n\ 918[\\040\\t]* )* # If comment found, allow more spaces.\n\ 919# optional trailing comments\n\ 920)? # optional route\n\ 921(?:\n\ 922[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 923(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 924# Atom\n\ 925| # or\n\ 926" # "\n\ 927[^\\\\\\x80-\\xff\\n\\015"] * # normal\n\ 928(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015"] * )* # ( special normal* )*\n\ 929" # "\n\ 930# Quoted string\n\ 931)\n\ 932[\\040\\t]* # Nab whitespace.\n\ 933(?:\n\ 934\\( # (\n\ 935[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 936(?: # (\n\ 937(?: \\\\ [^\\x80-\\xff] |\n\ 938\\( # (\n\ 939[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 940(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 941\\) # )\n\ 942) # special\n\ 943[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 944)* # )*\n\ 945\\) # )\n\ 946[\\040\\t]* )* # If comment found, allow more spaces.\n\ 947(?:\n\ 948\\.\n\ 949[\\040\\t]* # Nab whitespace.\n\ 950(?:\n\ 951\\( # (\n\ 952[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 953(?: # (\n\ 954(?: \\\\ [^\\x80-\\xff] |\n\ 955\\( # (\n\ 956[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 957(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 958\\) # )\n\ 959) # special\n\ 960[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 961)* # )*\n\ 962\\) # )\n\ 963[\\040\\t]* )* # If comment found, allow more spaces.\n\ 964(?:\n\ 965[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 966(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 967# Atom\n\ 968| # or\n\ 969" # "\n\ 970[^\\\\\\x80-\\xff\\n\\015"] * # normal\n\ 971(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015"] * )* # ( special normal* )*\n\ 972" # "\n\ 973# Quoted string\n\ 974)\n\ 975[\\040\\t]* # Nab whitespace.\n\ 976(?:\n\ 977\\( # (\n\ 978[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 979(?: # (\n\ 980(?: \\\\ [^\\x80-\\xff] |\n\ 981\\( # (\n\ 982[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 983(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 984\\) # )\n\ 985) # special\n\ 986[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 987)* # )*\n\ 988\\) # )\n\ 989[\\040\\t]* )* # If comment found, allow more spaces.\n\ 990# additional words\n\ 991)*\n\ 992@\n\ 993[\\040\\t]* # Nab whitespace.\n\ 994(?:\n\ 995\\( # (\n\ 996[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 997(?: # (\n\ 998(?: \\\\ [^\\x80-\\xff] |\n\ 999\\( # (\n\ 1000[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 1001(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 1002\\) # )\n\ 1003) # special\n\ 1004[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 1005)* # )*\n\ 1006\\) # )\n\ 1007[\\040\\t]* )* # If comment found, allow more spaces.\n\ 1008(?:\n\ 1009[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 1010(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 1011|\n\ 1012\\[ # [\n\ 1013(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff\n\ 1014\\] # ]\n\ 1015)\n\ 1016[\\040\\t]* # Nab whitespace.\n\ 1017(?:\n\ 1018\\( # (\n\ 1019[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 1020(?: # (\n\ 1021(?: \\\\ [^\\x80-\\xff] |\n\ 1022\\( # (\n\ 1023[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 1024(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 1025\\) # )\n\ 1026) # special\n\ 1027[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 1028)* # )*\n\ 1029\\) # )\n\ 1030[\\040\\t]* )* # If comment found, allow more spaces.\n\ 1031# optional trailing comments\n\ 1032(?:\n\ 1033\\.\n\ 1034[\\040\\t]* # Nab whitespace.\n\ 1035(?:\n\ 1036\\( # (\n\ 1037[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 1038(?: # (\n\ 1039(?: \\\\ [^\\x80-\\xff] |\n\ 1040\\( # (\n\ 1041[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 1042(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 1043\\) # )\n\ 1044) # special\n\ 1045[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 1046)* # )*\n\ 1047\\) # )\n\ 1048[\\040\\t]* )* # If comment found, allow more spaces.\n\ 1049(?:\n\ 1050[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...\n\ 1051(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\ 1052|\n\ 1053\\[ # [\n\ 1054(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff\n\ 1055\\] # ]\n\ 1056)\n\ 1057[\\040\\t]* # Nab whitespace.\n\ 1058(?:\n\ 1059\\( # (\n\ 1060[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 1061(?: # (\n\ 1062(?: \\\\ [^\\x80-\\xff] |\n\ 1063\\( # (\n\ 1064[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 1065(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*\n\ 1066\\) # )\n\ 1067) # special\n\ 1068[^\\\\\\x80-\\xff\\n\\015()] * # normal*\n\ 1069)* # )*\n\ 1070\\) # )\n\ 1071[\\040\\t]* )* # If comment found, allow more spaces.\n\ 1072# optional trailing comments\n\ 1073)*\n\ 1074# address spec\n\ 1075> # >\n\ 1076# name and address\n\ 1077)\n\ 1078 Alan Other <user@dom.ain> (0,25) 1079E$ckv SAME <user@dom.ain> (1,13) 1080E$ckv SAME user@dom.ain (0,12) 1081E$ckv SAME "A. Other" <user.1234@dom.ain> (a comment) (0,30) 1082E$ckv SAME A. Other <user.1234@dom.ain> (a comment) (2,28) 1083E$ckv SAME "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay (0,61) 1084E$ckv SAME A missing angle <user@some.where (17,32) 1085E$ckv SAME The quick brown fox NOMATCH 1086E$hx abc\\0def\\00pqr\\000xyz\\0000AB abc\0def\00pqr\000xyz\0000AB (0,19) 1087E$hx SAME abc456 abc\0def\00pqr\000xyz\0000ABCDE (7,26) 1088E$ abc\\x{0d}ef\\x00pqr\\x{00}0xyz\\x{00}00AB abc\x{0d}ef\x{00}pqr\x{00}0xyz\x{00}00AB (0,20) 1089E$ abc\\x000d\\x00pqr\\x000xyz\\x0000AB abc\x000d\x00pqr\x000xyz\x0000AB (0,13) 1090Ex$ SAME abc\x000d\x00pqr\x000xyz\x0000AB (0,13) 1091#E$ abc\\x0def\\x00pqr\\x000xyz\\x0000AB abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE (7,27) 1092#Ex$ abc\\x0def\\x00pqr\\x000xyz\\x0000AB abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE (7,27) 1093E$v ^[\\000-\\037] \0A (0,1) 1094E$v SAME \01B (0,1) 1095E$v SAME \037C (0,1) 1096E$x \\0* \0\0\0\0 (0,4) 1097E$ A\\x0{2,3}Z The A\x0\x0Z (4,8) 1098E$ SAME An A\0\x0\0Z (3,8) 1099E$ SAME A\0Z NOMATCH 1100E$ SAME A\0\x0\0\x0Z NOMATCH 1101E$z ^(cow|)\\1(bell) cowcowbell (0,10)(0,3)(6,10) 1102E$z SAME bell (0,4)(0,0)(0,4) 1103E$z SAME cowbell NOMATCH 1104E$ ^\\s \040abc (0,1) 1105E$ SAME \x{0c}abc (0,1) 1106E$ SAME \x0cxyz (0,1) 1107E$ SAME \fabc (0,1) 1108E$ SAME \nabc (0,1) 1109E$ SAME \rabc (0,1) 1110E$ SAME \tabc (0,1) 1111E$ SAME abc NOMATCH 1112E$c ^a\tb\n\ 1113 1114 c abc (0,3) 1115E$z ^(a|)\\1*b ab (0,2)(0,1) 1116E$z SAME aaaab (0,5)(0,1) 1117E$z SAME b (0,1)(0,0) 1118E$z SAME acb NOMATCH 1119E$z ^(a|)\\1+b aab (0,3)(0,1) 1120E$z SAME aaaab (0,5)(0,1) 1121E$z SAME b (0,1)(0,0) 1122E$z SAME ab NOMATCH 1123E$z ^(a|)\\1?b ab (0,2)(0,1) 1124E$z SAME aab (0,3)(0,1) 1125E$z SAME b (0,1)(0,0) 1126E$z SAME acb NOMATCH 1127E$z ^(a|)\\1{2}b aaab (0,4)(0,1) 1128E$z SAME b (0,1)(0,0) 1129E$z SAME ab NOMATCH 1130E$z SAME aab NOMATCH 1131E$z SAME aaaab NOMATCH 1132E$z ^(a|)\\1{2,3}b aaab (0,4)(0,1) 1133E$z SAME aaaab (0,5)(0,1) 1134E$z SAME b (0,1)(0,0) 1135E$z SAME ab NOMATCH 1136E$z SAME aab NOMATCH 1137E$z SAME aaaaab NOMATCH 1138E ab{1,3}bc abbbbc (0,6) 1139E SAME abbbc (0,5) 1140E SAME abbc (0,4) 1141E SAME abc NOMATCH 1142E SAME abbbbbc NOMATCH 1143E$ ([^.]*)\\.([^:]*):[T ]+(.*) track1.title:TBlah blah blah (0,28)(0,6)(7,12)(14,28) 1144E$i ([^.]*)\\.([^:]*):[T ]+(.*) track1.title:TBlah blah blah (0,28)(0,6)(7,12)(14,28) 1145E$i ([^.]*)\\.([^:]*):[t ]+(.*) track1.title:TBlah blah blah (0,28)(0,6)(7,12)(14,28) 1146E ^[W-c]+$ WXY_^abc (0,8) 1147E SAME wxy NOMATCH 1148Ei ^[W-c]+$ WXY_^abc (0,8) 1149Ei SAME wxy_^ABC (0,8) 1150E$iv ^[\\x3f-\\x5F]+$ WXY_^abc (0,8) 1151E$iv SAME wxy_^ABC (0,8) 1152En ^abc$ abc (0,3) 1153En$ SAME qqq\nabc (4,7) 1154En$ SAME abc\nzzz (0,3) 1155En$ SAME qqq\nabc\nzzz (4,7) 1156E ^abc$ abc (0,3) 1157E$ SAME qqq\nabc NOMATCH 1158E$ SAME abc\nzzz NOMATCH 1159E$ SAME qqq\nabc\nzzz NOMATCH 1160E$n \\Aabc\\Z abc (0,3) 1161E$n SAME abc\n NOMATCH 1162E$n SAME qqq\nabc NOMATCH 1163E$n SAME abc\nzzz NOMATCH 1164E$n SAME qqq\nabc\nzzz NOMATCH 1165E$j \\A(.)*\\Z abc\ndef (0,7)(6,7) 1166E$n \\A(.)*\\Z abc\ndef NOMATCH 1167E (?:b)|(?::+) b::c (0,1) 1168E SAME c::b (1,3) 1169E [-az]+ az- (0,3) 1170E SAME b NOMATCH 1171E [az-]+ za- (0,3) 1172E SAME b NOMATCH 1173E$kv [a\\-z]+ a-z (0,3) 1174E$kv SAME b NOMATCH 1175E [a-z]+ abcdxyz (0,7) 1176E$v [\\d-]+ 12-34 (0,5) 1177E$v SAME aaa NOMATCH 1178E$v [\\d-z]+ 12-34z ERANGE 1179E$v SAME aaa ERANGE 1180E$ \\x5c \\ (0,1) 1181E$ \\x20Z the Zoo (3,5) 1182E$ SAME Zulu NOMATCH 1183E$i (abc)\\1 abcabc (0,6)(0,3) 1184E$i SAME ABCabc (0,6)(0,3) 1185E$i SAME abcABC (0,6)(0,3) 1186E (main(O)?)+ mainmain (0,8)(4,8) 1187E SAME mainOmain (0,9)(5,9) 1188E ab{3cd ab{3cd BADBR 1189E ab{3,cd ab{3,cd BADBR 1190E ab{3,4a}cd ab{3,4a}cd BADBR 1191E {4,5a}bc {4,5a}bc BADBR 1192E$ ^a.b a\rb (0,3) 1193E$ SAME a\nb (0,3) 1194E abc$ abc (0,3) 1195E$ SAME abc\n NOMATCH 1196E$n SAME abc\n (0,3) 1197E$ SAME abc\ndef NOMATCH 1198E$n SAME abc\ndef (0,3) 1199E$ (abc)\\123 abc\x53 (0,4)(0,3) 1200E$ (abc)\\223 abc\x93 (0,4)(0,3) 1201E$ (abc)\\323 abc\xd3 (0,4)(0,3) 1202E$h (abc)\\500 abc\x40 ESUBREG 1203E$h SAME abc\100 ESUBREG 1204E$h (abc)\\1000 abc\x{40}0 (0,5)(0,3) 1205E$h SAME abc\x40\x30 (0,5)(0,3) 1206E$h SAME abc\1000 (0,5)(0,3) 1207E$h SAME abc\100\x30 (0,5)(0,3) 1208E$h SAME abc\100\060 (0,5)(0,3) 1209E$h SAME abc\100\60 (0,5)(0,3) 1210E$h (abc)\\100z abc\x40z (0,5)(0,3) 1211E$ abc\\71 abc\071 ESUBREG 1212E$h abc\\71 abc\071 (0,4) 1213E$ abc\\81 abc\081 ESUBREG 1214E$h abc\\81 abc\081 NOMATCH 1215E$h SAME abc\0\x38\x31 NOMATCH 1216E$ abc\\091 abc\091 BADESC 1217E$x abc\\091 abc\091 (0,6) 1218E$x SAME abc\0\x39\x31 (0,6) 1219E$ (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\\12\\123 abcdefghijkllS NOMATCH 1220E$ (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\12\\123 abcdefghijk\12S NOMATCH 1221E$h (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\\12\\123 abcdefghijkllS (0,14)(0,1)(1,2)(2,3)(3,4)(4,5)(5,6)(6,7)(7,8)(8,9)(9,10)(10,11)(11,12) 1222E$h (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\12\\123 abcdefghijk\12S (0,13)(0,1)(1,2)(2,3)(3,4)(4,5)(5,6)(6,7)(7,8)(8,9)(9,10)(10,11) 1223E$ (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(?12)\\123 abcdefghijkllS (0,14)(0,1)(1,2)(2,3)(3,4)(4,5)(5,6)(6,7)(7,8)(8,9)(9,10)(10,11)(11,12) 1224E$ ab\\gdef abgdef BADESC 1225E$x ab\\gdef abgdef (0,6) 1226E a{0}bc bc (0,2) 1227E (a|(bc)){0,0}?xyz xyz (0,3) 1228E$v abc[\\10]de abc\010de (0,6) 1229E$v abc[\\1]de abc\1de (0,6) 1230E$kv abc[\\1]de abc\1de (0,6) 1231E$v (abc)[\\1]de abc\1de (0,6)(0,3) 1232E$kv (abc)[\\1]de abc\1de (0,6)(0,3) 1233E$ a.b(?s) a\nb (0,3) 1234E$v ^([^a])([^\\b])([^c]*)([^d]{3,4}) baNOTccccd (0,9)(0,1)(1,2)(2,5)(5,9) 1235E$v SAME baNOTcccd (0,8)(0,1)(1,2)(2,5)(5,8) 1236E$v SAME baNOTccd (0,7)(0,1)(1,2)(2,4)(4,7) 1237E$v SAME bacccd (0,5)(0,1)(1,2)(2,2)(2,5) 1238E$v SAME anything NOMATCH 1239E$v SAME b\bc... NOMATCH 1240E$v SAME baccd NOMATCH 1241E$v ^([^a])([^\\f])([^c]*)([^d]{3,4}) b\fc... NOMATCH 1242E [^a] Abc (0,1) 1243Ei [^a] Abc (1,2) 1244E [^a]+ AAAaAbc (0,3) 1245Ei [^a]+ AAAaAbc (5,8) 1246E$ [^a]+ bbb\nccc (0,7) 1247E [^k]$ abc (2,3) 1248E SAME abk (5,6) 1249E [^k]{2,3}$ abc (0,3) 1250E SAME kbc (1,3) 1251E SAME kabc (2,5) 1252E SAME abk NOMATCH 1253E SAME akb NOMATCH 1254E SAME akk NOMATCH 1255E$ ^\\d{8,}\\@.+[^k]$ 12345678@a.b.c.d (0,16) 1256E$ SAME 123456789@x.y.z (0,15) 1257E$ SAME 12345678@x.y.uk NOMATCH 1258E$ SAME 1234567@a.b.c.d NOMATCH 1259E$ (a)\\1{8,} aaaaaaaaa (0,9)(0,1) 1260E$ SAME aaaaaaaaaa (0,10)(0,1) 1261E$ SAME aaaaaaa NOMATCH 1262E [^a] aaaabcd (4,5) 1263E SAME aaAabcd (2,3) 1264Ei [^a] aaaabcd (4,5) 1265Ei SAME aaAabcd (4,5) 1266E [^az] aaaabcd (4,5) 1267E SAME aaAabcd (2,3) 1268Ei [^az] aaaabcd (4,5) 1269Ei SAME aaAabcd (4,5) 1270E$ \\000\\001\\002\\003\\004\\005\\006\\007\\010\\011\\012\\013\\014\\015\\016\\017\\020\\021\\022\\023\\024\\025\\026\\027\\030\\031\\032\\033\\034\\035\\036\\037\\040\\041\\042\\043\\044\\045\\046\\047\\050\\051\\052\\053\\054\\055\\056\\057\\060\\061\\062\\063\\064\\065\\066\\067\\070\\071\\072\\073\\074\\075\\076\\077\\100\\101\\102\\103\\104\\105\\106\\107\\110\\111\\112\\113\\114\\115\\116\\117\\120\\121\\122\\123\\124\\125\\126\\127\\130\\131\\132\\133\\134\\135\\136\\137\\140\\141\\142\\143\\144\\145\\146\\147\\150\\151\\152\\153\\154\\155\\156\\157\\160\\161\\162\\163\\164\\165\\166\\167\\170\\171\\172\\173\\174\\175\\176\\177\\200\\201\\202\\203\\204\\205\\206\\207\\210\\211\\212\\213\\214\\215\\216\\217\\220\\221\\222\\223\\224\\225\\226\\227\\230\\231\\232\\233\\234\\235\\236\\237\\240\\241\\242\\243\\244\\245\\246\\247\\250\\251\\252\\253\\254\\255\\256\\257\\260\\261\\262\\263\\264\\265\\266\\267\\270\\271\\272\\273\\274\\275\\276\\277\\300\\301\\302\\303\\304\\305\\306\\307\\310\\311\\312\\313\\314\\315\\316\\317\\320\\321\\322\\323\\324\\325\\326\\327\\330\\331\\332\\333\\334\\335\\336\\337\\340\\341\\342\\343\\344\\345\\346\\347\\350\\351\\352\\353\\354\\355\\356\\357\\360\\361\\362\\363\\364\\365\\366\\367\\370\\371\\372\\373\\374\\375\\376\\377 \000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377 (0,256) 1271E P[^*]TAIRE[^*]{1,6}?LL xxxxxxxxxxxPSTAIREISLLxxxxxxxxx (11,22) 1272E P[^*]TAIRE[^*]{1,}?LL xxxxxxxxxxxPSTAIREISLLxxxxxxxxx (11,22) 1273E$ (\\.\\d\\d[1-9]?)\\d+ 1.230003938 (1,11)(1,4) 1274E$ SAME 1.875000282 (1,11)(1,5) 1275E$ SAME 1.235 (1,5)(1,4) 1276E$ (\\.\\d\\d((?=0)|[1-9](?=\\d))) 1.230003938 (1,4)(1,4)(4,4) 1277E$ (\\.\\d\\d((?=0)|\\d(?=\\d))) 1.230003938 (1,5)(1,5)(4,5) 1278E$ SAME 1.875000282 (1,5)(1,5)(4,5) 1279E$ SAME 1.235 NOMATCH 1280E a(?)b ab (0,2) 1281E a(?#)b ab (0,2) 1282E$i \\b(foo)\\s+(\\w+) Food is on the foo table (15,24)(15,18)(19,24) 1283E foo(.*)bar The food is under the bar in the barn. (4,36)(7,33) 1284E foo(.*?)bar The food is under the bar in the barn. (4,25)(7,22) 1285E$ (.*)(\\d*) I have 2 numbers: 53147 (0,23)(0,23)(23,23) 1286E$ (.*)(\\d+) I have 2 numbers: 53147 (0,23)(0,22)(22,23) 1287E$ (.*?)(\\d*) I have 2 numbers: 53147 (0,0)(0,0)(0,0) 1288E$ (.*?)(\\d+) I have 2 numbers: 53147 (0,8)(0,7)(7,8) 1289E$ (.*)(\\d+)$ I have 2 numbers: 53147 (0,23)(0,22)(22,23) 1290E$ (.*?)(\\d+)$ I have 2 numbers: 53147 (0,23)(0,18)(18,23) 1291E$ (.*)\\b(\\d+)$ I have 2 numbers: 53147 (0,23)(0,18)(18,23) 1292E$ (.*\\D)(\\d+)$ I have 2 numbers: 53147 (0,23)(0,18)(18,23) 1293E$ ^\\D*(?!123) ABC123 (0,2) 1294E$ ^(\\D*)(?=\\d)(?!123) ABC445 (0,3)(0,3) 1295E$ SAME ABC123 NOMATCH 1296E ^[W-]46] W46]789 (0,4) 1297E SAME -46]789 (0,4) 1298E SAME Wall NOMATCH 1299E SAME Zebra NOMATCH 1300E SAME 42 NOMATCH 1301E SAME [abcd] NOMATCH 1302E SAME ]abcd[ NOMATCH 1303E$kv ^[W-\\]46] W46]789 (0,1) 1304E$kv SAME Wall (0,1) 1305E$kv SAME Zebra (0,1) 1306E$kv SAME Xylophone (0,1) 1307E$kv SAME 42 (0,1) 1308E$kv SAME [abcd] (0,1) 1309E$kv SAME ]abcd[ (0,1) 1310E$kv SAME \\backslash (0,1) 1311E$kv SAME -46]789 NOMATCH 1312E$kv SAME well NOMATCH 1313E$ \\d\\d/\\d\\d/\\d\\d\\d\\d 01/01/2000 (0,10) 1314E word (?:[a-zA-Z0-9]+ ){0,10}otherword word cat dog elephant mussel cow horse canary baboon snake shark otherword (0,74) 1315E SAME word cat dog elephant mussel cow horse canary baboon snake shark NOMATCH 1316E word (?:[a-zA-Z0-9]+ ){0,300}otherword word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope NOMATCH 1317E ^(a){0,0} bcd (0,0) 1318E SAME abc (0,0) 1319E SAME aab (0,0) 1320E ^(a){0,1} bcd (0,0) 1321E SAME abc (0,1)(0,1) 1322E SAME aab (0,1)(0,1) 1323E ^(a){0,2} bcd (0,0) 1324E SAME abc (0,1)(0,1) 1325E SAME aab (0,2)(1,2) 1326E ^(a){0,3} bcd (0,0) 1327E SAME abc (0,1)(0,1) 1328E SAME aab (0,2)(1,2) 1329E SAME aaa (0,3)(2,3) 1330E ^(a){0,} bcd (0,0) 1331E SAME abc (0,1)(0,1) 1332E SAME aab (0,2)(1,2) 1333E SAME aaa (0,3)(2,3) 1334E SAME aaaaaaaa (0,8)(7,8) 1335E ^(a){1,1} bcd NOMATCH 1336E SAME abc (0,1)(0,1) 1337E SAME aab (0,1)(0,1) 1338E ^(a){1,2} bcd NOMATCH 1339E SAME abc (0,1)(0,1) 1340E SAME aab (0,2)(1,2) 1341E ^(a){1,3} bcd NOMATCH 1342E SAME abc (0,1)(0,1) 1343E SAME aab (0,2)(1,2) 1344E SAME aaa (0,3)(2,3) 1345E ^(a){1,} bcd NOMATCH 1346E SAME abc (0,1)(0,1) 1347E SAME aab (0,2)(1,2) 1348E SAME aaa (0,3)(2,3) 1349E SAME aaaaaaaa (0,8)(7,8) 1350E$ .{0,}\\.gif borfle\nbib.gif\nno (0,14) 1351E$ .*\\.gif borfle\nbib.gif\nno (0,14) 1352E$n SAME borfle\nbib.gif\nno (7,14) 1353E$j SAME borfle\nbib.gif\nno (0,14) 1354E$nj SAME borfle\nbib.gif\nno (0,14) 1355E$ .*$ borfle\nbib.gif\nno (0,17) 1356En$ SAME borfle\nbib.gif\nno (0,6) 1357Ej$ SAME borfle\nbib.gif\nno (0,17) 1358Enj$ SAME borfle\nbib.gif\nno (0,17) 1359E$ SAME borfle\nbib.gif\nno\n (0,18) 1360En$ SAME borfle\nbib.gif\nno\n (0,6) 1361Ej$ SAME borfle\nbib.gif\nno\n (0,18) 1362Enj$ SAME borfle\nbib.gif\nno\n (0,18) 1363E$ (.*X|^B) abcde\n1234Xyz (0,11)(0,11) 1364E$ SAME BarFoo (0,1)(0,1) 1365E$ SAME abcde\nBar NOMATCH 1366En$ (.*X|^B) abcde\n1234Xyz (6,11)(6,11) 1367En$ SAME BarFoo (0,1)(0,1) 1368En$ SAME abcde\nBar (6,7)(6,7) 1369Ej$ (.*X|^B) abcde\n1234Xyz (0,11)(0,11) 1370Ej$ SAME BarFoo (0,1)(0,1) 1371Ej$ SAME abcde\nBar NOMATCH 1372Enj$ (.*X|^B) abcde\n1234Xyz (0,11)(0,11) 1373Enj$ SAME BarFoo (0,1)(0,1) 1374Enj$ SAME abcde\nBar (6,7)(6,7) 1375E$ (?s)(.*X|^B) abcde\n1234Xyz (0,11)(0,11) 1376E$ SAME BarFoo (0,1)(0,1) 1377E$ SAME abcde\nBar NOMATCH 1378E$ (?s:.*X|^B) abcde\n1234Xyz (0,11) 1379E$ SAME BarFoo (0,1) 1380E$ SAME abcde\nBar NOMATCH 1381E$ ^.*B abc\nB (0,5) 1382E$n ^.*B abc\nB (4,5) 1383E$ (?s)^.*B abc\nB (0,5) 1384E$ (?m)^.*B abc\nB (4,5) 1385E$ (?ms)^.*B abc\nB (0,5) 1386E$ (?ms)^B abc\nB (4,5) 1387E$ (?m)B$ B\n (0,1) 1388E$ (?s)B$ B\n NOMATCH 1389E ^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] 123456654321 (0,12) 1390E$ ^\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d 123456654321 (0,12) 1391E$v ^[\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d] 123456654321 (0,12) 1392E ^[abc]{12} abcabcabcabc (0,12) 1393E ^[a-c]{12} abcabcabcabc (0,12) 1394E ^(a|b|c){12} abcabcabcabc (0,12)(11,12) 1395E ^[abcdefghijklmnopqrstuvwxy0123456789] n (0,1) 1396E SAME z NOMATCH 1397E abcde{0,0} abcd (0,4) 1398E SAME abce NOMATCH 1399E ab[cd]{0,0}e abe (0,3) 1400E SAME abcde NOMATCH 1401E ab(c){0,0}d abd (0,3) 1402E SAME abcd NOMATCH 1403E a(b*) a (0,1)(1,1) 1404E SAME ab (0,2)(1,2) 1405E SAME abbbb (0,5)(1,5) 1406E SAME bbbbb NOMATCH 1407E$ ab\\d{0}e abe (0,3) 1408E$ SAME ab1e NOMATCH 1409E$v "([^\\\\"]+|\\\\.)*" the "quick" brown fox (4,11)(5,10) 1410#E$v SAME "the \\"quick\\" brown fox" (0,25)(14,24) 1411E .*? abc (0,0) 1412E$ \\b abc (0,0) 1413E$ \\b abc (0,0) 1414Ez NULL abc (0,0) 1415E$ijv <tr([\\w\\W\\s\\d][^<>]{0,})><TD([\\w\\W\\s\\d][^<>]{0,})>([\\d]{0,}\\.)(.*)((<BR>([\\w\\W\\s\\d][^<>]{0,})|[\\s]{0,}))</a></TD><TD([\\w\\W\\s\\d][^<>]{0,})>([\\w\\W\\s\\d][^<>]{0,})</TD><TD([\\w\\W\\s\\d][^<>]{0,})>([\\w\\W\\s\\d][^<>]{0,})</TD></TR> <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR> (0,227)(3,21)(25,47)(48,51)(51,122)(122,122)(122,122)(?,?)(134,156)(157,172)(180,202)(203,217) 1416E a[^a]b acb (0,3) 1417E$ SAME a\nb (0,3) 1418E a.b acb (0,3) 1419E$ SAME a\nb (0,3) 1420Ej a[^a]b acb (0,3) 1421Ej$ SAME a\nb (0,3) 1422Ej a.b acb (0,3) 1423Ej$ SAME a\nb (0,3) 1424