1E (?<!bar)foo foo (0,3) 2E SAME catfood (3,6) 3E SAME arfootle (2,5) 4E SAME rfoosh (1,4) 5E SAME barfoo NOMATCH 6E SAME towbarfoo NOMATCH 7E$ \\w{3}(?<!bar)foo catfood (0,6) 8E$ SAME foo NOMATCH 9E$ SAME barfoo NOMATCH 10E$ SAME towbarfoo NOMATCH 11E (?<=(foo)a)bar fooabar (4,7)(0,3) 12E SAME bar NOMATCH 13E SAME foobbar NOMATCH 14E$n \\Aabc\\z abc (0,3) 15E$n SAME abc\n NOMATCH 16E$n SAME qqq\nabc NOMATCH 17E$n SAME abc\nzzz NOMATCH 18E$n SAME qqq\nabc\nzzz NOMATCH 19E (?>.*/)foo /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/ NOMATCH 20E (?>.*/)foo /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo (0,67) 21E$ (?>(\\.\\d\\d[1-9]?))\\d+ 1.230003938 (1,11)(1,4) 22E$ SAME 1.875000282 (1,11)(1,5) 23E$ SAME 1.235 NOMATCH 24E$ ^((?>\\w+)|(?>\\s+))*$ now is the time for all good men to come to the aid of the party (0,64)(59,64) 25E$ SAME this is not a line with only words and spaces! NOMATCH 26E$ (\\d+)(\\w) 12345a (0,6)(0,5)(5,6) 27E$ SAME 12345+ (0,5)(0,4)(4,5) 28E$ ((?>\\d+))(\\w) 12345a (0,6)(0,5)(5,6) 29E$ SAME 12345+ NOMATCH 30E (?>a+)b aaab (0,4) 31E ((?>a+)b) aaab (0,4)(0,4) 32E (?>(a+))b aaab (0,4)(0,3) 33E (?>b) aaabbbccc (3,4) 34E (?>b)* aaabbbccc (0,0) 35E (?>b)+ aaabbbccc (3,6) 36E (?>(b))+ aaabbbccc (3,6)(5,6) 37E ((?>b))+ aaabbbccc (3,6)(5,6) 38E ((?>(b)))+ aaabbbccc (3,6)(5,6)(5,6) 39E (?>b)+. aaabbbccc (3,7) 40E (?:b) aaabbbccc (3,4) 41E (?:b)* aaabbbccc (0,0) 42E (?:b)+ aaabbbccc (3,6) 43E (?:(b))+ aaabbbccc (3,6)(5,6) 44E ((?:b))+ aaabbbccc (3,6)(5,6) 45E ((?:(b)))+ aaabbbccc (3,6)(5,6)(5,6) 46E (?:b)+. aaabbbccc (3,7) 47E (a+|b+|c+)*c aaabbbbccccd (0,11)(7,10) 48E (?>a+|b+|c+)*c aaabbbbccccd (0,8) 49E$ ((?>[^()]+)|\\([^()]*\\))+ ((abc(ade)ufh()()x (2,18)(17,18) 50E$ \\(((?>[^()]+)|\\([^()]+\\))+\\) (abc) (0,5)(1,4) 51E$ SAME (abc(def)xyz) (0,13)(9,12) 52E$ SAME ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa NOMATCH 53Ei (?-i)ab ab (0,2) 54Ei SAME Ab NOMATCH 55Ei SAME aB NOMATCH 56Ei SAME AB NOMATCH 57E (?i)ab ab (0,2) 58E SAME Ab (0,2) 59E SAME aB (0,2) 60E SAME AB (0,2) 61Ei a(?-i)b ab (0,2) 62Ei SAME Ab (0,2) 63Ei SAME aB NOMATCH 64Ei SAME AB NOMATCH 65E a(?i)b ab (0,2) 66E SAME Ab NOMATCH 67E SAME aB (0,2) 68E SAME AB NOMATCH 69Ei (?-i)AB ab NOMATCH 70Ei SAME Ab NOMATCH 71Ei SAME aB NOMATCH 72Ei SAME AB (0,2) 73E (?i)AB ab (0,2) 74E SAME Ab (0,2) 75E SAME aB (0,2) 76E SAME AB (0,2) 77Ei A(?-i)B ab NOMATCH 78Ei SAME Ab NOMATCH 79Ei SAME aB (0,2) 80Ei SAME AB (0,2) 81E A(?i)B ab NOMATCH 82E SAME Ab (0,2) 83E SAME aB NOMATCH 84E SAME AB (0,2) 85Ei ^(?-i)ab ab (0,2) 86Ei SAME Ab NOMATCH 87Ei SAME aB NOMATCH 88Ei SAME AB NOMATCH 89E ^(?i)ab ab (0,2) 90E SAME Ab (0,2) 91E SAME aB (0,2) 92E SAME AB (0,2) 93Ei ^a(?-i)b ab (0,2) 94Ei SAME Ab (0,2) 95Ei SAME aB NOMATCH 96Ei SAME AB NOMATCH 97E ^a(?i)b ab (0,2) 98E SAME Ab NOMATCH 99E SAME aB (0,2) 100E SAME AB NOMATCH 101Ei ^(?-i)AB ab NOMATCH 102Ei SAME Ab NOMATCH 103Ei SAME aB NOMATCH 104Ei SAME AB (0,2) 105E ^(?i)AB ab (0,2) 106E SAME Ab (0,2) 107E SAME aB (0,2) 108E SAME AB (0,2) 109Ei ^A(?-i)B ab NOMATCH 110Ei SAME Ab NOMATCH 111Ei SAME aB (0,2) 112Ei SAME AB (0,2) 113E ^A(?i)B ab NOMATCH 114E SAME Ab (0,2) 115E SAME aB NOMATCH 116E SAME AB (0,2) 117E (a (?x)b c)d e a bcde NOMATCH 118E (a (?x)b c)d e a bcd e (0,7)(0,4) 119E SAME a b cd e NOMATCH 120E SAME abcd e NOMATCH 121E SAME a bcde NOMATCH 122E (a b(?x)c d (?-x)e f) a bcde f (0,8)(0,8) 123E SAME abcdef NOMATCH 124E (a(?i)b)c abc (0,3)(0,2) 125E SAME aBc (0,3)(0,2) 126E SAME abC NOMATCH 127E SAME aBC NOMATCH 128E SAME Abc NOMATCH 129E SAME ABc NOMATCH 130E SAME ABC NOMATCH 131E SAME AbC NOMATCH 132E a(?i:b)c abc (0,3) 133E SAME aBc (0,3) 134E SAME ABC NOMATCH 135E SAME abC NOMATCH 136E SAME aBC NOMATCH 137E a(?i:b)*c aBc (0,3) 138E SAME aBBc (0,4) 139E SAME aBC NOMATCH 140E SAME aBBC NOMATCH 141E$ a(?=b(?i)c)\\w\\wd abcd (0,4) 142E$ SAME abCd (0,4) 143E$ SAME aBCd NOMATCH 144E$ SAME abcD NOMATCH 145Ei (?s-i:more.*than).*million more than million (0,17) 146Ei SAME more than MILLION (0,17) 147Ei$ SAME more \n than Million (0,19) 148Ei$ SAME MORE THAN MILLION NOMATCH 149Ei$ SAME more \n than \n million (0,21) 150Ei (?:(?s-i)more.*than).*million more than million (0,17) 151Ei SAME more than MILLION (0,17) 152Ei$ SAME more \n than Million (0,19) 153Ei$ SAME MORE THAN MILLION NOMATCH 154Ei$ SAME more \n than \n million (0,21) 155E (?>a(?i)b+)+c abc (0,3) 156E SAME aBbc (0,4) 157E SAME aBBc (0,4) 158E SAME Abc NOMATCH 159E SAME abAb NOMATCH 160E SAME abbC NOMATCH 161E$ (?=a(?i)b)\\w\\wc abc (0,3) 162E$ SAME aBc (0,3) 163E$ SAME Ab NOMATCH 164E$ SAME abC NOMATCH 165E$ SAME aBC NOMATCH 166E$ (?<=a(?i)b)(\\w\\w)c abxxc (2,5)(2,4) 167E$ SAME aBxxc (2,5)(2,4) 168E$ SAME Abxxc NOMATCH 169E$ SAME ABxxc NOMATCH 170E$ SAME abxxC NOMATCH 171E (?:(a)|b)(?(1)A|B) aA (0,2)(0,1) 172E SAME bB (0,2) 173E SAME aB NOMATCH 174E SAME bA NOMATCH 175E (a)?(?(1)a|b) aa (0,2)(0,1) 176E (a)?(?(1)a|b)+ aa (0,2)(0,1) 177E ^(a)?(?(1)a|b)+$ aa (0,2)(0,1) 178E SAME b (0,1) 179E SAME bb (0,2) 180E SAME ab NOMATCH 181E$ \\w\\w\\w: abc: (0,4) 182E$ \\d\\d 12 (0,2) 183E$ (?(?=abc)\\w\\w\\w:|\\d\\d) abc: (0,4) 184E$ ^(?(?=abc)\\w\\w\\w:|\\d\\d)$ abc: (0,4) 185E$ ^(?(?=abc)\\w{3}:|\\d\\d)$ abc: (0,4) 186E$ SAME 12 (0,2) 187E$ SAME 123 NOMATCH 188E$ SAME xyz NOMATCH 189E$ ^(?(?!abc)\\d\\d|\\w{3}:)$ abc: (0,4) 190E$ ^(?(?!abc)\\d\\d|\\w\\w\\w:)$ abc: (0,4) 191E$ SAME 12 (0,2) 192E$ SAME 123 NOMATCH 193E$ SAME xyz NOMATCH 194E (?(?<=foo)bar|cat) foobar (3,6) 195E SAME cat (0,3) 196E SAME fcat (1,4) 197E SAME focat (2,5) 198E SAME foocat NOMATCH 199E (?(?<!foo)cat|bar) foobar (3,6) 200E SAME cat (0,3) 201E SAME fcat (1,4) 202E SAME focat (2,5) 203E SAME foocat NOMATCH 204E$cz ( \\( )? [^()]+ (?(1) \\) |) abcd (0,4) 205E$cz SAME (abcd) (0,6)(0,1) 206E$cz SAME the quick (abcd) fox (0,10) 207E$cz SAME (abcd (1,5) 208E$cz ( \\( )? [^()]+ (?(1) \\) ) abcd (0,4) 209E$cz SAME (abcd) (0,6)(0,1) 210E$cz SAME the quick (abcd) fox (0,10) 211E$cz SAME (abcd (1,5) 212E$ ((?i)blah)\\s+\\1 blah blah (0,9)(0,4) 213E$ SAME BLAH BLAH (0,9)(0,4) 214E$ SAME Blah Blah (0,9)(0,4) 215E$ SAME blaH blaH (0,9)(0,4) 216E$ SAME blah BLAH NOMATCH 217E$ SAME Blah blah NOMATCH 218E$ SAME blaH blah NOMATCH 219E$ ((?i)blah)\\s+(?i:\\1) blah blah (0,9)(0,4) 220E$ SAME BLAH BLAH (0,9)(0,4) 221E$ SAME Blah Blah (0,9)(0,4) 222E$ SAME blaH blaH (0,9)(0,4) 223E$ SAME blah BLAH (0,9)(0,4) 224E$ SAME Blah blah (0,9)(0,4) 225E$ SAME blaH blah (0,9)(0,4) 226E (?>a*)* a (0,1) 227E SAME aa (0,2) 228E SAME aaaa (0,4) 229Ez (abc|)+ abc (0,3)(0,3) 230Ez SAME abcabc (0,6)(3,6) 231Ez SAME abcabcabc (0,9)(6,9) 232Ez SAME xyz (0,0)(0,0) 233E ([a]*)* a (0,1)(0,1) 234E SAME aaaaa (0,5)(0,5) 235E ([ab]*)* a (0,1)(0,1) 236E SAME b (0,1)(0,1) 237E SAME ababab (0,6)(0,6) 238E SAME aaaabcde (0,5)(0,5) 239E SAME bbbb (0,4)(0,4) 240E ([^a]*)* b (0,1)(0,1) 241E SAME bbbb (0,4)(0,4) 242E SAME aaa (0,0)(0,0) 243E ([^ab]*)* cccc (0,4)(0,4) 244E SAME abab (0,0)(0,0) 245E ([a]*?)* a (0,0)(0,0) 246E SAME aaaa (0,0)(0,0) 247E ([ab]*?)* a (0,0)(0,0) 248E SAME b (0,0)(0,0) 249E SAME abab (0,0)(0,0) 250E SAME baba (0,0)(0,0) 251E ([^a]*?)* b (0,0)(0,0) 252E SAME bbbb (0,0)(0,0) 253E SAME aaa (0,0)(0,0) 254E ([^ab]*?)* c (0,0)(0,0) 255E SAME cccc (0,0)(0,0) 256E SAME baba (0,0)(0,0) 257E (?>a*)* a (0,1) 258E SAME aaabcde (0,3) 259E ((?>a*))* aaaaa (0,5)(0,5) 260E SAME aabbaa (0,2)(0,2) 261E ((?>a*)*) aaaaa (0,5)(0,5) 262E SAME aabbaa (0,2)(0,2) 263E ((?>a*?))* aaaaa (0,0)(0,0) 264E SAME aabbaa (0,0)(0,0) 265E ((?>a*?)*) aaaaa (0,0)(0,0) 266E SAME aabbaa (0,0)(0,0) 267E$c (?(?=[^a-z]+[a-z]) \\d{2}-[a-z]{3}-\\d{2} | \\d{2}-\\d{2}-\\d{2} ) 12-sep-98 (0,9) 268E$c SAME 12-09-98 (0,8) 269E$c SAME sep-12-98 NOMATCH 270E$ (?<=(foo))bar\\1 foobarfoo (3,9)(0,3) 271E$ SAME foobarfootling (3,9)(0,3) 272E$ SAME foobar NOMATCH 273E$ SAME barfoo NOMATCH 274E (?i:saturday|sunday) saturday (0,8) 275E SAME sunday (0,6) 276E SAME Saturday (0,8) 277E SAME Sunday (0,6) 278E SAME SATURDAY (0,8) 279E SAME SUNDAY (0,6) 280E SAME SunDay (0,6) 281E (a(?i)bc|BB)x abcx (0,4)(0,3) 282E SAME aBCx (0,4)(0,3) 283E SAME bbx (0,3)(0,2) 284E SAME BBx (0,3)(0,2) 285E SAME abcX NOMATCH 286E SAME aBCX NOMATCH 287E SAME bbX NOMATCH 288E SAME BBX NOMATCH 289E ^([ab](?i)[cd]|[ef]) ac (0,2)(0,2) 290E SAME aC (0,2)(0,2) 291E SAME bD (0,2)(0,2) 292E SAME elephant (0,1)(0,1) 293E SAME Europe (0,1)(0,1) 294E SAME frog (0,1)(0,1) 295E SAME France (0,1)(0,1) 296E SAME Africa NOMATCH 297E ^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z) ab (0,2)(0,2) 298E SAME aBd (0,3)(0,3) 299E SAME xy (0,2)(0,2) 300E SAME xY (0,2)(0,2) 301E SAME zebra (0,1)(0,1) 302E SAME Zambesi (0,1)(0,1) 303E SAME aCD NOMATCH 304E SAME XY NOMATCH 305E$n (?<=foo\\n)^bar foo\nbar (4,7) 306E$n SAME bar NOMATCH 307E$n SAME baz\nbar NOMATCH 308E (?<=(?<!foo)bar)baz barbaz (3,6) 309E SAME barbarbaz (6,9) 310E SAME koobarbaz (6,9) 311E SAME baz NOMATCH 312E SAME foobarbaz NOMATCH 313E The case of aaaaaa is missed out below because I think Perl 5.005_02 gets /it wrong; it sets $1 to aaa rather than aa. Compare the following test,/ NOMATCH 314E SAME /where it does set $1 to aa when matching aaaaaa./ NOMATCH 315E$ ^(a\\1?){4}$ a ESUBREG 316E$ ^((a)\\2?){4}$ a NOMATCH 317E$ SAME aa NOMATCH 318E$ SAME aaa NOMATCH 319E$ SAME aaaa (0,4)(3,4)(3,4) 320E$ SAME aaaaa (0,5)(4,5)(4,5) 321E$ SAME aaaaaaa (0,7)(6,7)(6,7) 322E$ SAME aaaaaaaa (0,8)(6,8)(6,7) 323E$ SAME aaaaaaaaa NOMATCH 324E$ SAME aaaaaaaaaa NOMATCH 325E$ SAME aaaaaaaaaaa NOMATCH 326E$ SAME aaaaaaaaaaaa NOMATCH 327E$ SAME aaaaaaaaaaaaa NOMATCH 328E$ SAME aaaaaaaaaaaaaa NOMATCH 329E$ SAME aaaaaaaaaaaaaaa NOMATCH 330E$ SAME aaaaaaaaaaaaaaaa NOMATCH 331E$ ^(aa?)(a\\1?)(a\\2?)(a\\3?)$ a NOMATCH 332E$ SAME aa NOMATCH 333E$ SAME aaa NOMATCH 334E$ SAME aaaa (0,4)(0,1)(1,2)(2,3)(3,4) 335E$ SAME aaaaa (0,5)(0,2)(2,3)(3,4)(4,5) 336E$ SAME aaaaaa (0,6)(0,2)(2,3)(3,5)(5,6) 337E$ SAME aaaaaaa (0,7)(0,2)(2,5)(5,6)(6,7) 338E$ SAME aaaaaaaa (0,8)(0,2)(2,5)(5,6)(6,8) 339E$ SAME aaaaaaaaa NOMATCH 340E$ SAME aaaaaaaaaa (0,10)(0,2)(2,5)(5,9)(9,10) 341E$ SAME aaaaaaaaaaa NOMATCH 342E$ SAME aaaaaaaaaaaa NOMATCH 343E$ SAME aaaaaaaaaaaaa NOMATCH 344E$ SAME aaaaaaaaaaaaaa (0,14)(0,2)(2,5)(5,9)(9,14) 345E$ SAME aaaaaaaaaaaaaaa NOMATCH 346E$ SAME aaaaaaaaaaaaaaaa NOMATCH 347# The following tests are taken from the Perl 5.005 test suite 348# some of them are compatible with 5.004 349# but I'd rather not have to sort them out. 350E abc abc (0,3) 351E SAME xabcy (1,4) 352E SAME ababc (2,5) 353E SAME xbc NOMATCH 354E SAME axc NOMATCH 355E SAME abx NOMATCH 356E ab*c abc (0,3) 357E ab*bc abc (0,3) 358E SAME abbc (0,4) 359E SAME abbbbc (0,6) 360E .{1} abbbbc (0,1) 361E .{3,4} abbbbc (0,4) 362E ab{0,}bc abbbbc (0,6) 363E ab+bc abbc (0,4) 364E SAME abc NOMATCH 365E SAME abq NOMATCH 366E ab+bc abbbbc (0,6) 367E ab{1,}bc abbbbc (0,6) 368E ab{1,3}bc abbbbc (0,6) 369E ab{3,4}bc abbbbc (0,6) 370E ab{4,5}bc abq NOMATCH 371E SAME abbbbc NOMATCH 372E ab?bc abbc (0,4) 373E SAME abc (0,3) 374E ab{0,1}bc abc (0,3) 375E ab?c abc (0,3) 376E ab{0,1}c abc (0,3) 377E ^abc$ abc (0,3) 378E SAME abbbbc NOMATCH 379E SAME abcc NOMATCH 380E ^abc abcc (0,3) 381E abc$ aabc (1,4) 382E SAME aabc (1,4) 383E SAME aabcd NOMATCH 384E ^ abc (0,0) 385E $ abc (3,3) 386E a.c abc (0,3) 387E SAME axc (0,3) 388E a.*c axyzc (0,5) 389E a[bc]d abd (0,3) 390E SAME axyzd NOMATCH 391E SAME abc NOMATCH 392E a[b-d]e ace (0,3) 393E a[b-d] aac (1,3) 394E a[-b] a- (0,2) 395E a[b-] a- (0,2) 396E a] a] (0,2) 397E a[]]b a]b (0,3) 398E a[^bc]d aed (0,3) 399E SAME abd NOMATCH 400E SAME abd NOMATCH 401E a[^-b]c adc (0,3) 402E a[^]b]c adc (0,3) 403E SAME a-c (0,3) 404E SAME a]c NOMATCH 405E$ \\ba\\b a- (0,1) 406E$ SAME -a (1,2) 407E$ SAME -a- (1,2) 408E$ \\by\\b xy NOMATCH 409E$ SAME yz NOMATCH 410E$ SAME xyz NOMATCH 411E$ \\Ba\\B a- NOMATCH 412E$ SAME -a NOMATCH 413E$ SAME -a- NOMATCH 414E$ \\By\\b xy (1,2) 415E$ \\by\\B yz (0,1) 416E$ \\By\\B xyz (1,2) 417E$ \\w a (0,1) 418E$ \\W - (0,1) 419E$ SAME - (0,1) 420E$ SAME a NOMATCH 421E$ a\\sb a b (0,3) 422E$ a\\Sb a-b (0,3) 423E$ SAME a-b (0,3) 424E$ SAME a b NOMATCH 425E$ \\d 1 (0,1) 426E$ \\D - (0,1) 427E$ SAME - (0,1) 428E$ SAME 1 NOMATCH 429E$v [\\w] a (0,1) 430E$v [\\W] - (0,1) 431E$v SAME - (0,1) 432E$v SAME a NOMATCH 433E$v a[\\s]b a b (0,3) 434E$v a[\\S]b a-b (0,3) 435E$v SAME a-b (0,3) 436E$v SAME a b NOMATCH 437E$v [\\d] 1 (0,1) 438E$v [\\D] - (0,1) 439E$v SAME - (0,1) 440E$v SAME 1 NOMATCH 441E ab|cd abc (0,2) 442E SAME abcd (0,2) 443Ez ()ef def (1,3)(1,1) 444E$ a\\(b a(b (0,3) 445E$ a\\(*b ab (0,2) 446E$ SAME a((b (0,4) 447E$ a\\\\b a\b NOMATCH 448E ((a)) abc (0,1)(0,1)(0,1) 449E (a)b(c) abc (0,3)(0,1)(2,3) 450E a+b+c aabbabc (4,7) 451E a{1,}b{1,}c aabbabc (4,7) 452E a.+?c abcabc (0,3) 453E (a+|b)* ab (0,2)(1,2) 454E (a+|b){0,} ab (0,2)(1,2) 455E (a+|b)+ ab (0,2)(1,2) 456E (a+|b){1,} ab (0,2)(1,2) 457E (a+|b)? ab (0,1)(0,1) 458E (a+|b){0,1} ab (0,1)(0,1) 459E [^ab]* cde (0,3) 460E abc b NOMATCH 461E ([abc])*d abbbcd (0,6)(4,5) 462E ([abc])*bcd abcd (0,4)(0,1) 463E a|b|c|d|e e (0,1) 464E (a|b|c|d|e)f ef (0,2)(0,1) 465E abcd*efg abcdefg (0,7) 466E ab* xabyabbbz (1,3) 467E SAME xayabbbz (1,2) 468E (ab|cd)e abcde (2,5)(2,4) 469E [abhgefdc]ij hij (0,3) 470Ez (abc|)ef abcdef (4,6)(4,4) 471E (a|b)c*d abcd (1,4)(1,2) 472E (ab|ab*)bc abc (0,3)(0,1) 473E a([bc]*)c* abc (0,3)(1,3) 474E a([bc]*)(c*d) abcd (0,4)(1,3)(3,4) 475E a([bc]+)(c*d) abcd (0,4)(1,3)(3,4) 476E a([bc]*)(c+d) abcd (0,4)(1,2)(2,4) 477E a[bcd]*dcdcde adcdcde (0,7) 478E a[bcd]+dcdcde abcde NOMATCH 479E SAME adcdcde NOMATCH 480E (ab|a)b*c abc (0,3)(0,2) 481E ((a)(b)c)(d) abcd (0,4)(0,3)(0,1)(1,2)(3,4) 482E [a-zA-Z_][a-zA-Z0-9_]* alpha (0,5) 483E ^a(bc+|b[eh])g|.h$ abh (1,3) 484E (bc+d$|ef*g.|h?i(j|k)) effgz (0,5)(0,5) 485E SAME ij (0,2)(0,2)(1,2) 486E SAME reffgz (1,6)(1,6) 487E SAME effg NOMATCH 488E SAME bcdd NOMATCH 489E ((((((((((a)))))))))) a (0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1) 490E$ ((((((((((a))))))))))\\10 aa NOMATCH 491E$ ((((((((((a))))))))))\\10 aa0 (0,3)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1) 492E$ ((((((((((a))))))))))(?10) aa (0,2)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1) 493E (((((((((a))))))))) a (0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1) 494E multiple words of text aa NOMATCH 495E SAME uh-uh NOMATCH 496E multiple words multiple words, yeah (0,14) 497E (.*)c(.*) abcde (0,5)(0,2)(3,5) 498E$ \\((.*), (.*)\\) (a, b) (0,6)(1,2)(4,5) 499E abcd abcd (0,4) 500E a(bc)d abcd (0,4)(1,3) 501E a[-]?c ac (0,2) 502E$ (abc)\\1 abcabc (0,6)(0,3) 503E$ ([a-c]*)\\1 abcabc (0,6)(0,3) 504E$ (a)|\\1 a (0,1)(0,1) 505E$ SAME ab (0,1)(0,1) 506E$ SAME x NOMATCH 507E$ (([a-c])b*?\\2)* ababbbcbc (0,5)(3,5)(3,4) 508E$ (([a-c])b*?\\2){3} ababbbcbc (0,9)(6,9)(6,7) 509E ((a|b)\2(a)x)+ aaaxabaxbaaxbbax (0,4)(0,4)(0,1)(2,3) 510E$ ((\\3|b)\\2(a)x)+ aaaxabaxbaaxbbax ESUBREG 511E$ ((\\3|b)\\2(a)){2,} bbaababbabaaaaabbaaaabba ESUBREG 512Ei abc ABC (0,3) 513Ei SAME XABCY (1,4) 514Ei SAME ABABC (2,5) 515Ei SAME aaxabxbaxbbx NOMATCH 516Ei SAME XBC NOMATCH 517Ei SAME AXC NOMATCH 518Ei SAME ABX NOMATCH 519Ei ab*c ABC (0,3) 520Ei ab*bc ABC (0,3) 521Ei SAME ABBC (0,4) 522Ei ab*?bc ABBBBC (0,6) 523Ei ab{0,}?bc ABBBBC (0,6) 524Ei ab+?bc ABBC (0,4) 525Ei ab+bc ABC NOMATCH 526Ei SAME ABQ NOMATCH 527Ei ab+bc ABBBBC (0,6) 528Ei ab{1,}?bc ABBBBC (0,6) 529Ei ab{1,3}?bc ABBBBC (0,6) 530Ei ab{3,4}?bc ABBBBC (0,6) 531Ei ab{4,5}?bc ABQ NOMATCH 532Ei SAME ABBBBC NOMATCH 533Ei ab??bc ABBC (0,4) 534Ei SAME ABC (0,3) 535Ei ab{0,1}?bc ABC (0,3) 536Ei ab??c ABC (0,3) 537Ei ab{0,1}?c ABC (0,3) 538Ei ^abc$ ABC (0,3) 539Ei SAME ABBBBC NOMATCH 540Ei SAME ABCC NOMATCH 541Ei ^abc ABCC (0,3) 542Ei abc$ AABC (1,4) 543Ei ^ ABC (0,0) 544Ei $ ABC (3,3) 545Ei a.c ABC (0,3) 546Ei SAME AXC (0,3) 547Ei a.*?c AXYZC (0,5) 548Ei a.*c AABC (0,4) 549Ei SAME AXYZD NOMATCH 550Ei a[bc]d ABD (0,3) 551Ei a[b-d]e ACE (0,3) 552Ei SAME ABC NOMATCH 553Ei SAME ABD NOMATCH 554Ei a[b-d] AAC (1,3) 555Ei a[-b] A- (0,2) 556Ei a[b-] A- (0,2) 557Ei a] A] (0,2) 558Ei a[]]b A]B (0,3) 559Ei a[^bc]d AED (0,3) 560Ei a[^-b]c ADC (0,3) 561Ei SAME ABD NOMATCH 562Ei SAME A-C NOMATCH 563Ei a[^]b]c ADC (0,3) 564Ei ab|cd ABC (0,2) 565Ei SAME ABCD (0,2) 566Ezi ()ef DEF (1,3)(1,1) 567Ei $b A]C NOMATCH 568Ei SAME B NOMATCH 569E$i a\\(b A(B (0,3) 570E$i a\\(*b AB (0,2) 571E$i SAME A((B (0,4) 572E$i a\\\\b A\\B (0,3) 573Ei ((a)) ABC (0,1)(0,1)(0,1) 574Ei (a)b(c) ABC (0,3)(0,1)(2,3) 575Ei a+b+c AABBABC (4,7) 576Ei a{1,}b{1,}c AABBABC (4,7) 577Ei a.+?c ABCABC (0,3) 578Ei a.*?c ABCABC (0,3) 579Ei a.{0,5}?c ABCABC (0,3) 580Ei (a+|b)* AB (0,2)(1,2) 581Ei (a+|b){0,} AB (0,2)(1,2) 582Ei (a+|b)+ AB (0,2)(1,2) 583Ei (a+|b){1,} AB (0,2)(1,2) 584Ei (a+|b)? AB (0,1)(0,1) 585Ei (a+|b){0,1} AB (0,1)(0,1) 586Ei (a+|b){0,1}? AB (0,0) 587Ei [^ab]* CDE (0,3) 588Ei ([abc])*d ABBBCD (0,6)(4,5) 589Ei ([abc])*bcd ABCD (0,4)(0,1) 590Ei a|b|c|d|e E (0,1) 591Ei (a|b|c|d|e)f EF (0,2)(0,1) 592Ei abcd*efg ABCDEFG (0,7) 593Ei ab* XABYABBBZ (1,3) 594Ei SAME XAYABBBZ (1,2) 595Ei (ab|cd)e ABCDE (2,5)(2,4) 596Ei [abhgefdc]ij HIJ (0,3) 597Ei ^(ab|cd)e ABCDE NOMATCH 598Ezi (abc|)ef ABCDEF (4,6)(4,4) 599Ei (a|b)c*d ABCD (1,4)(1,2) 600Ei (ab|ab*)bc ABC (0,3)(0,1) 601Ei a([bc]*)c* ABC (0,3)(1,3) 602Ei a([bc]*)(c*d) ABCD (0,4)(1,3)(3,4) 603Ei a([bc]+)(c*d) ABCD (0,4)(1,3)(3,4) 604Ei a([bc]*)(c+d) ABCD (0,4)(1,2)(2,4) 605Ei a[bcd]*dcdcde ADCDCDE (0,7) 606Ei (ab|a)b*c ABC (0,3)(0,2) 607Ei ((a)(b)c)(d) ABCD (0,4)(0,3)(0,1)(1,2)(3,4) 608Ei [a-zA-Z_][a-zA-Z0-9_]* ALPHA (0,5) 609Ei ^a(bc+|b[eh])g|.h$ ABH (1,3) 610Ei (bc+d$|ef*g.|h?i(j|k)) EFFGZ (0,5)(0,5) 611Ei SAME IJ (0,2)(0,2)(1,2) 612Ei SAME REFFGZ (1,6)(1,6) 613Ei SAME ADCDCDE NOMATCH 614Ei SAME EFFG NOMATCH 615Ei SAME BCDD NOMATCH 616Ei ((((((((((a)))))))))) A (0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1) 617E$i ((((((((((a))))))))))\\10 AA NOMATCH 618E$i ((((((((((a))))))))))\\10 AA0 (0,3)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1) 619E$i ((((((((((a))))))))))(?10) AA (0,2)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1) 620Ei (((((((((a))))))))) A (0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1) 621Ei (?:(?:(?:(?:(?:(?:(?:(?:(?:(a)))))))))) A (0,1)(0,1) 622Ei (?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c)))))))))) C (0,1)(0,1) 623Ei multiple words of text AA NOMATCH 624Ei SAME UH-UH NOMATCH 625Ei multiple words MULTIPLE WORDS, YEAH (0,14) 626Ei (.*)c(.*) ABCDE (0,5)(0,2)(3,5) 627E$i \\((.*), (.*)\\) (A, B) (0,6)(1,2)(4,5) 628Ei abcd ABCD (0,4) 629Ei a(bc)d ABCD (0,4)(1,3) 630Ei a[-]?c AC (0,2) 631E$i (abc)\\1 ABCABC (0,6)(0,3) 632E$i ([a-c]*)\\1 ABCABC (0,6)(0,3) 633E a(?!b). abad (2,4) 634E a(?=d). abad (2,4) 635E a(?=c|d). abad (2,4) 636E a(?:b|c|d)(.) ace (0,3)(2,3) 637E a(?:b|c|d)*(.) ace (0,3)(2,3) 638E a(?:b|c|d)+?(.) ace (0,3)(2,3) 639E SAME acdbcdbe (0,3)(2,3) 640E a(?:b|c|d)+(.) acdbcdbe (0,8)(7,8) 641E a(?:b|c|d){2}(.) acdbcdbe (0,4)(3,4) 642E a(?:b|c|d){4,5}(.) acdbcdbe (0,7)(6,7) 643E a(?:b|c|d){4,5}?(.) acdbcdbe (0,6)(5,6) 644E ((foo)|(bar))* foobar (0,6)(3,6)(?,?)(3,6) 645E a(?:b|c|d){6,7}(.) acdbcdbe (0,8)(7,8) 646E a(?:b|c|d){6,7}?(.) acdbcdbe (0,8)(7,8) 647E a(?:b|c|d){5,6}(.) acdbcdbe (0,8)(7,8) 648E a(?:b|c|d){5,6}?(.) acdbcdbe (0,7)(6,7) 649E a(?:b|c|d){5,7}(.) acdbcdbe (0,8)(7,8) 650E a(?:b|c|d){5,7}?(.) acdbcdbe (0,7)(6,7) 651E a(?:b|(c|e){1,2}?|d)+?(.) ace (0,3)(1,2)(2,3) 652E ^(.+)?B AB (0,2)(0,1) 653E$ ^([^a-z])|(\\^)$ . (0,1)(0,1) 654E ^[<>]& <&OUT (0,2) 655E$ ^(a\\1?){4}$ aaaaaaaaaa ESUBREG 656E$ SAME AB ESUBREG 657E$ SAME aaaaaaaaa ESUBREG 658E$ SAME aaaaaaaaaaa ESUBREG 659E$ ^(a(?(1)\\1)){4}$ aaaaaaaaaa ESUBREG 660E$ SAME aaaaaaaaa ESUBREG 661E$ SAME aaaaaaaaaaa ESUBREG 662E ((f)(o)(o)|(b)(a)(r))* foobar (0,6)(3,6)(?,?)(?,?)(?,?)(3,4)(4,5)(5,6) 663E (?:(f)(o)(o)|(b)(a)(r))* foobar (0,6)(?,?)(?,?)(?,?)(3,4)(4,5)(5,6) 664E ((f)(u)|(b)(a)(r))* fubar (0,5)(2,5)(?,?)(?,?)(2,3)(3,4)(4,5) 665E (?:(f)(u)|(b)(a)(r))* fubar (0,5)(?,?)(?,?)(2,3)(3,4)(4,5) 666E (?<=a)b ab (1,2) 667E SAME cb NOMATCH 668E SAME b NOMATCH 669E (?<!c)b ab (1,2) 670E SAME b (0,1) 671E SAME b (0,1) 672E (?:..)*a aba (0,3) 673E (?:..)*?a aba (0,1) 674E$ ^(?:b|a(?=(.)))*\\1 abc (0,2)(1,2) 675Ez ^(){3,5} abc (0,0)(0,0) 676E ^(a+)*ax aax (0,3)(0,1) 677E ^((a|b)+)*ax aax (0,3)(0,1)(0,1) 678E ^((a|bc)+)*ax aax (0,3)(0,1)(0,1) 679E (a|x)*ab cab (1,3) 680E (a)*ab cab (1,3) 681E (?:(?i)a)b ab (0,2) 682E ((?i)a)b ab (0,2)(0,1) 683E (?:(?i)a)b Ab (0,2) 684E ((?i)a)b Ab (0,2)(0,1) 685E (?:(?i)a)b cb NOMATCH 686E SAME aB NOMATCH 687E (?i:a)b ab (0,2) 688E ((?i:a))b ab (0,2)(0,1) 689E (?i:a)b Ab (0,2) 690E ((?i:a))b Ab (0,2)(0,1) 691E (?i:a)b aB NOMATCH 692E SAME aB NOMATCH 693Ei (?:(?-i)a)b ab (0,2) 694Ei ((?-i)a)b ab (0,2)(0,1) 695Ei (?:(?-i)a)b aB (0,2) 696Ei ((?-i)a)b aB (0,2)(0,1) 697Ei (?:(?-i)a)b aB (0,2) 698Ei SAME Ab NOMATCH 699Ei (?:(?-i)a)b aB (0,2) 700Ei ((?-i)a)b aB (0,2)(0,1) 701Ei (?:(?-i)a)b Ab NOMATCH 702Ei SAME AB NOMATCH 703Ei (?-i:a)b ab (0,2) 704Ei ((?-i:a))b ab (0,2)(0,1) 705Ei (?-i:a)b aB (0,2) 706Ei ((?-i:a))b aB (0,2)(0,1) 707Ei (?-i:a)b AB NOMATCH 708Ei SAME Ab NOMATCH 709Ei (?-i:a)b aB (0,2) 710Ei ((?-i:a))b aB (0,2)(0,1) 711Ei (?-i:a)b Ab NOMATCH 712Ei SAME AB NOMATCH 713Ei ((?-i:a.))b AB NOMATCH 714Ei$ SAME a\nB (0,3)(0,2) 715Ei$ ((?s-i:a.))b a\nB (0,3)(0,2) 716E (?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b))) cabbbb (0,6) 717E (?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb))) caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb (0,41) 718E$i (ab)\\d\\1 Ab4ab (0,5)(0,2) 719E$i SAME ab4Ab (0,5)(0,2) 720E$ foo\\w*\\d{4}baz foobar1234baz (0,13) 721E x(~~)*(?:(?:F)?)? x~~ (0,3)(1,3) 722E ^a{3}(?#xxx)c aaac (0,4) 723E ^a(?#xxx){3}c aaac (0,4) 724Ec ^a (?#xxx) (?#yyy) {3} c aaac (0,4) 725E$ (?<![cd])b B\nB NOMATCH 726E$ SAME dbcb NOMATCH 727E (?<![cd])[ab] dbaacb (2,3) 728E (?<!(c|d))[ab] dbaacb (2,3) 729E (?<!cd)[ab] cdaccb (5,6) 730E ^(?:a?b?)*$ dbcb NOMATCH 731E SAME a-- NOMATCH 732E$ (^a(.))(^b$) a\nb\nc\n NOMATCH 733E$n (^a(.))(^b$) a\nb\nc\n NOMATCH 734E$j (^a(.))(^b$) a\nb\nc\n NOMATCH 735E$nj (^a(.))(^b$) a\nb\nc\n (0,3)(0,2)(1,2)(2,3) 736E$ (?ms)(^a(.))(^b$) a\nb\nc\n (0,3)(0,2)(1,2)(2,3) 737E$ (?ms:(^a(.))(^b$)) a\nb\nc\n (0,3)(0,2)(1,2)(2,3) 738E$nj (?:(^a(.))(^b$)) a\nb\nc\n (0,3)(0,2)(1,2)(2,3) 739E$ (?ms)(?:(^a(.))(^b$)) a\nb\nc\n (0,3)(0,2)(1,2)(2,3) 740E$ ((?s)^a(.))((?m)^b$) a\nb\nc\n (0,3)(0,2)(1,2)(2,3) 741E$ ((?m)^b$) a\nb\nc\n (2,3)(2,3) 742E$ (?m)^b a\nb\n (2,3) 743E$ (?m)^(b) a\nb\n (2,3)(2,3) 744E$ ((?m)^b) a\nb\n (2,3)(2,3) 745E$ \\n((?m)^b) a\nb\n (1,3)(2,3) 746E$ .c a\nb\nc\n (3,5) 747E$n .c a\nb\nc\n NOMATCH 748E$j .c a\nb\nc\n (3,5) 749E$nj .c a\nb\nc\n (3,5) 750E$ (?:.c) a\nb\nc\n (3,5) 751E$ (?m:.c) a\nb\nc\n NOMATCH 752E$ (?s:.c) a\nb\nc\n (3,5) 753E$ (?ms:.c) a\nb\nc\n (3,5) 754E$ (?m).c a\nb\nc\n NOMATCH 755E$ (?s).c a\nb\nc\n (3,5) 756E$ (?ms).c a\nb\nc\n (3,5) 757E$ ((?s).c) a\nb\nc\n (3,5)(3,5) 758E$ ((?s).)c a\nb\nc\n (3,5)(3,4) 759E$ . \n (0,1) 760E$n . \n NOMATCH 761E$j . \n (0,1) 762E$nj . \n (0,1) 763E$ (?=.) \n (0,0) 764E$n (?=.) \n NOMATCH 765E$j (?=.) \n (0,0) 766E$nj (?=.) \n (0,0) 767E$ (?!.) \n (1,1) 768E$n (?!.) \n (0,0) 769E$j (?!.) \n (1,1) 770E$nj (?!.) \n (1,1) 771E$ (.)c(?!.) a\nb\nc\n NOMATCH 772E$ (?:(.)c)(?:(?!.)) a\nb\nc\n NOMATCH 773E$ (?:(.)c)(?m:(?!.)) a\nb\nc\n (3,5)(3,4) 774E$ ((?s).)c(?!.) a\nb\nc\n NOMATCH 775E$ SAME a\nb\nc\n NOMATCH 776E$ ((?s)b.)c(?!.) a\nb\nc\n NOMATCH 777E$ SAME a\nb\nc\n NOMATCH 778Ez$ ()^b a\nb\nc\n NOMATCH 779Ez$ SAME a\nb\nc\n NOMATCH 780Ez$ ((?m)^b) a\nb\nc\n (2,3)(2,3) 781Ez (?(1)b|a) a ESUBREG 782E (x)?(?(1)a|b) a NOMATCH 783E SAME a NOMATCH 784E (x)?(?(1)b|a) a (0,1) 785Ez ()?a a (0,1)(0,0) 786Ez ()?(?(1)a|b) a (0,1)(0,0) 787Ez SAME b (0,1) 788Ez ()?(?(1)b|a) a (0,1) 789Ez SAME b (0,1)(0,0) 790Ez ()?(?(1)b|a) a (0,1) 791E$ ^(<)?blah(>)?$ <blah> (0,6)(0,1)(5,6) 792E$ ^(<)?blah(?(1)>)$ <blah> (0,6)(0,1) 793E$ ^(<)?blah(?(1)(>))$ <blah> (0,6)(0,1)(5,6) 794E$ SAME blah (0,4) 795E$ SAME a NOMATCH 796E$ SAME blah> NOMATCH 797E$ SAME <blah NOMATCH 798Ez$ ^(<)?blah(?(1)(>)|)$ <blah> (0,6)(0,1)(5,6) 799Ez$ SAME blah (0,4) 800Ez$ SAME a NOMATCH 801Ez$ SAME blah> NOMATCH 802Ez$ SAME <blah NOMATCH 803E$ ^(\\()?blah(?(1)(\\)))$ (blah) (0,6)(0,1)(5,6) 804E$ SAME blah (0,4) 805E$ SAME a NOMATCH 806E$ SAME blah) NOMATCH 807E$ SAME (blah NOMATCH 808E$ ^(\\(+)?blah(?(1)(\\)))$ (blah) (0,6)(0,1)(5,6) 809E$ SAME blah (0,4) 810E$ SAME blah) NOMATCH 811E$ SAME (blah NOMATCH 812E (?(?!a)b|a) a (0,1) 813E (?(?=a)b|a) a NOMATCH 814E SAME a NOMATCH 815E (?(?=a)a|b) a (0,1) 816E$ (?=(a+))(\\1ab) aaab (0,4)(0,2)(0,4) 817Em$ SAME aaab (0,4)(0,2)(0,4) 818E$ (?=(a+?))(\\1ab) aaab (0,4)(0,2)(0,4) 819E$ (\\w+:)+ one: (0,4)(0,4) 820E $(?<=^(a)) a (1,1)(0,1) 821E$ (?=(a+?))(\\1ab) aaab (0,4)(0,2)(0,4) 822E$ ^(?=(a+?))\\1ab aaab (0,4)(0,2) 823E$ SAME aaab (0,4)(0,2) 824E$v ([\\w:]+::)?(\\w+)$ abcd (0,4)(?,?)(0,4) 825E$v SAME xy:z:::abcd (0,11)(0,7)(7,11) 826E ^[^bcd]*(c+) aexycd (0,5)(4,5) 827E (a*)b+ caab (1,4)(1,3) 828E$v ([\\w:]+::)?(\\w+)$ abcd (0,4)(?,?)(0,4) 829E$v SAME xy:z:::abcd (0,11)(0,7)(7,11) 830E$v SAME abcd: NOMATCH 831E$v SAME abcd: NOMATCH 832E ^[^bcd]*(c+) aexycd (0,5)(4,5) 833E (?>a+)b aaab (0,4) 834E ([[:]+) a:[b]: ECTYPE 835E ([[=]+) a=[b]= ECOLLATE 836E ([[.]+) a.[b]. ECOLLATE 837E ((?>a+)b) aaab (0,4)(0,4) 838E (?>(a+))b aaab (0,4)(0,3) 839E$ ((?>[^()]+)|\\([^()]*\\))+ ((abc(ade)ufh()()x (2,18)(17,18) 840E$ a\\Z aaab NOMATCH 841E$ SAME a\nb\n NOMATCH 842E$ b\\Z a\nb\n (2,3) 843E$ b\\Z a\nb (2,3) 844E$ b\\z a\nb (2,3) 845E$v ^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$ a ESUBREG 846E$v SAME abc ESUBREG 847E$v SAME a-b ESUBREG 848E$v SAME 0-9 ESUBREG 849E$v SAME a.b ESUBREG 850E$v SAME 5.6.7 ESUBREG 851E$v SAME the.quick.brown.fox ESUBREG 852E$v SAME a100.b200.300c ESUBREG 853E$v SAME 12-ab.1245 ESUBREG 854E$v SAME NULL ESUBREG 855E$v SAME .a ESUBREG 856E$v SAME -a ESUBREG 857E$v SAME a- ESUBREG 858E$v SAME a. ESUBREG 859E$v SAME a_b ESUBREG 860E$v SAME a.- ESUBREG 861E$v SAME a.. ESUBREG 862E$v SAME ab..bc ESUBREG 863E$v SAME the.quick.brown.fox- ESUBREG 864E$v SAME the.quick.brown.fox. ESUBREG 865E$v SAME the.quick.brown.fox_ ESUBREG 866E$v SAME the.quick.brown.fox+ ESUBREG 867E (?>.*)(?<=(abcd|wxyz)) alphabetabcd (0,12)(8,12) 868E SAME endingwxyz (0,10)(6,10) 869E SAME a rather long string that doesn't end with one of them NOMATCH 870E word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword word cat dog elephant mussel cow horse canary baboon snake shark otherword (0,74) 871E SAME word cat dog elephant mussel cow horse canary baboon snake shark NOMATCH 872E word (?>[a-zA-Z0-9]+ ){0,30}otherword word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope NOMATCH 873E$ (?<=\\d{3}(?!999))foo 999foo (3,6) 874E$ SAME 123999foo (6,9) 875E$ SAME 123abcfoo NOMATCH 876E$ (?<=(?!...999)\\d{3})foo 999foo (3,6) 877E$ SAME 123999foo (6,9) 878E$ SAME 123abcfoo NOMATCH 879E$ (?<=\\d{3}(?!999)...)foo 123abcfoo (6,9) 880E$ SAME 123456foo (6,9) 881E$ SAME 123999foo NOMATCH 882E$ (?<=\\d{3}...)(?<!999)foo 123abcfoo (6,9) 883E$ SAME 123456foo (6,9) 884E$ SAME 123999foo NOMATCH 885Ei <a +href *= *(["'])? <a href=abcd xyz (0,8) 886Ei =(")?(?(1)(.*)"|([^ ]+)) =abcd xyz (0,5)(?,?)(?,?)(1,5) 887Ei =(")?(?(1)(.*)\1|([^ ]+)) ="abcd" xyz (0,7)(1,2)(2,6) 888Ei <a +href *= *((["'])(.*?)\2|[^ ]+) <a href=abcd xyz (0,12)(8,12) 889Ei <a +href *= *((["'])(.*?)\2|[^ ]+) <a href="abcd" xyz (0,14)(8,14)(8,9)(9,13) 890Ei <a +href *= *(["'])?(?(1)(.*?)\1|([^ ]+)) <a href=abcd xyz (0,12)(?,?)(?,?)(8,12) 891Ei <a +href *= *(["'])?(?(1)(.*?)\1|([^ ]+)) <a href='abcd' xyz (0,14)(8,9)(9,13) 892Eiv <a[\s]+href[\s]*=[\s]*(["'])?(?(1)(.*?)\1|([^\s]+)) <a href=abcd xyz (0,12)(?,?)(?,?)(8,12) 893E$ijcv <a[\\s]+href[\\s]*=[\\s]* # find <a href=\n (["\\'])? # find single or double quote\n (?(1) (.*?)\\1 | ([^\\s]+)) # if quote found, match up to\n # next matching quote,\n # otherwise match up to next\n # space\n <a href=abcd xyz (0,12)(?,?)(?,?)(8,12) 894E$ijcv SAME <a href="abcd xyz pqr" cats (0,22)(8,9)(9,21) 895E$ijcv SAME <a href='abcd xyz pqr' cats (0,22)(8,9)(9,21) 896E$ijc <a\\s+href\\s*=\\s* # find <a href=\n (["'])? # find single or double quote\n (?(1) (.*?)\\1 | (\\S+)) # if quote found, match to next matching\n # quote, otherwise match up to next space\n <a href=abcd xyz (0,12)(?,?)(?,?)(8,12) 897E$ijc SAME <a href="abcd xyz pqr" cats (0,22)(8,9)(9,21) 898E$ijc SAME <a href = 'abcd xyz pqr' cats (0,36)(22,23)(23,35) 899E$ijc <a\\s+href(?>\\s*)=(?>\\s*) # find <a href=\n (["'])? # find single or double quote\n (?(1) (.*?)\\1 | (\\S+)) # if quote found, match up to next matching\n # quote, otherwise match up to next space\n <a href=abcd xyz (0,12)(?,?)(?,?)(8,12) 900E$ijc SAME <a href="abcd xyz pqr" cats (0,22)(8,9)(9,21) 901E$ijc SAME <a href = 'abcd xyz pqr' cats (0,36)(22,23)(23,35) 902E ((Z)+|A)* ZABCDEFG (0,2)(1,2) 903E (Z()|A)* ZABCDEFG ENULL 904Ez (Z()|A)* ZABCDEFG (0,2)(1,2) 905E (Z(())|A)* ZABCDEFG ENULL 906Ez (Z(())|A)* ZABCDEFG (0,2)(1,2) 907E ((?>Z)+|A)* ZABCDEFG (0,2)(1,2) 908E ((?>)+|A)* ZABCDEFG (0,0)(0,0) 909E a* abbab (0,1) 910E$v ^[a-\\d]* abcde ERANGE 911E$v ^[a-\\d] abcde ERANGE 912E$v SAME -things ERANGE 913E$v SAME 0digit ERANGE 914E$v SAME bcdef ERANGE 915E$v ^[\\d-a] abcde ERANGE 916E$v SAME -things ERANGE 917E$v SAME 0digit ERANGE 918E$v SAME bcdef ERANGE 919