1/-- This set of tests check the DFA matching functionality of pcre_dfa_exec(), 2 excluding UTF and Unicode property support. The -dfa flag must be used with 3 pcretest when running it. --/ 4 5< forbid 8W 6 7/abc/ 8 abc 9 10/ab*c/ 11 abc 12 abbbbc 13 ac 14 15/ab+c/ 16 abc 17 abbbbbbc 18 *** Failers 19 ac 20 ab 21 22/a*/O 23 a 24 aaaaaaaaaaaaaaaaa 25 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 26 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\F 27 28/(a|abcd|african)/ 29 a 30 abcd 31 african 32 33/^abc/ 34 abcdef 35 *** Failers 36 xyzabc 37 xyz\nabc 38 39/^abc/m 40 abcdef 41 xyz\nabc 42 *** Failers 43 xyzabc 44 45/\Aabc/ 46 abcdef 47 *** Failers 48 xyzabc 49 xyz\nabc 50 51/\Aabc/m 52 abcdef 53 *** Failers 54 xyzabc 55 xyz\nabc 56 57/\Gabc/ 58 abcdef 59 xyzabc\>3 60 *** Failers 61 xyzabc 62 xyzabc\>2 63 64/x\dy\Dz/ 65 x9yzz 66 x0y+z 67 *** Failers 68 xyz 69 xxy0z 70 71/x\sy\Sz/ 72 x yzz 73 x y+z 74 *** Failers 75 xyz 76 xxyyz 77 78/x\wy\Wz/ 79 xxy+z 80 *** Failers 81 xxy0z 82 x+y+z 83 84/x.y/ 85 x+y 86 x-y 87 *** Failers 88 x\ny 89 90/x.y/s 91 x+y 92 x-y 93 x\ny 94 95/(a.b(?s)c.d|x.y)p.q/ 96 a+bc+dp+q 97 a+bc\ndp+q 98 x\nyp+q 99 *** Failers 100 a\nbc\ndp+q 101 a+bc\ndp\nq 102 x\nyp\nq 103 104/a\d\z/ 105 ba0 106 *** Failers 107 ba0\n 108 ba0\ncd 109 110/a\d\z/m 111 ba0 112 *** Failers 113 ba0\n 114 ba0\ncd 115 116/a\d\Z/ 117 ba0 118 ba0\n 119 *** Failers 120 ba0\ncd 121 122/a\d\Z/m 123 ba0 124 ba0\n 125 *** Failers 126 ba0\ncd 127 128/a\d$/ 129 ba0 130 ba0\n 131 *** Failers 132 ba0\ncd 133 134/a\d$/m 135 ba0 136 ba0\n 137 ba0\ncd 138 *** Failers 139 140/abc/i 141 abc 142 aBc 143 ABC 144 145/[^a]/ 146 abcd 147 148/ab?\w/ 149 abz 150 abbz 151 azz 152 153/x{0,3}yz/ 154 ayzq 155 axyzq 156 axxyz 157 axxxyzq 158 axxxxyzq 159 *** Failers 160 ax 161 axx 162 163/x{3}yz/ 164 axxxyzq 165 axxxxyzq 166 *** Failers 167 ax 168 axx 169 ayzq 170 axyzq 171 axxyz 172 173/x{2,3}yz/ 174 axxyz 175 axxxyzq 176 axxxxyzq 177 *** Failers 178 ax 179 axx 180 ayzq 181 axyzq 182 183/[^a]+/O 184 bac 185 bcdefax 186 *** Failers 187 aaaaa 188 189/[^a]*/O 190 bac 191 bcdefax 192 *** Failers 193 aaaaa 194 195/[^a]{3,5}/O 196 xyz 197 awxyza 198 abcdefa 199 abcdefghijk 200 *** Failers 201 axya 202 axa 203 aaaaa 204 205/\d*/ 206 1234b567 207 xyz 208 209/\D*/ 210 a1234b567 211 xyz 212 213/\d+/ 214 ab1234c56 215 *** Failers 216 xyz 217 218/\D+/ 219 ab123c56 220 *** Failers 221 789 222 223/\d?A/ 224 045ABC 225 ABC 226 *** Failers 227 XYZ 228 229/\D?A/ 230 ABC 231 BAC 232 9ABC 233 *** Failers 234 235/a+/ 236 aaaa 237 238/^.*xyz/ 239 xyz 240 ggggggggxyz 241 242/^.+xyz/ 243 abcdxyz 244 axyz 245 *** Failers 246 xyz 247 248/^.?xyz/ 249 xyz 250 cxyz 251 252/^\d{2,3}X/ 253 12X 254 123X 255 *** Failers 256 X 257 1X 258 1234X 259 260/^[abcd]\d/ 261 a45 262 b93 263 c99z 264 d04 265 *** Failers 266 e45 267 abcd 268 abcd1234 269 1234 270 271/^[abcd]*\d/ 272 a45 273 b93 274 c99z 275 d04 276 abcd1234 277 1234 278 *** Failers 279 e45 280 abcd 281 282/^[abcd]+\d/ 283 a45 284 b93 285 c99z 286 d04 287 abcd1234 288 *** Failers 289 1234 290 e45 291 abcd 292 293/^a+X/ 294 aX 295 aaX 296 297/^[abcd]?\d/ 298 a45 299 b93 300 c99z 301 d04 302 1234 303 *** Failers 304 abcd1234 305 e45 306 307/^[abcd]{2,3}\d/ 308 ab45 309 bcd93 310 *** Failers 311 1234 312 a36 313 abcd1234 314 ee45 315 316/^(abc)*\d/ 317 abc45 318 abcabcabc45 319 42xyz 320 *** Failers 321 322/^(abc)+\d/ 323 abc45 324 abcabcabc45 325 *** Failers 326 42xyz 327 328/^(abc)?\d/ 329 abc45 330 42xyz 331 *** Failers 332 abcabcabc45 333 334/^(abc){2,3}\d/ 335 abcabc45 336 abcabcabc45 337 *** Failers 338 abcabcabcabc45 339 abc45 340 42xyz 341 342/1(abc|xyz)2(?1)3/ 343 1abc2abc3456 344 1abc2xyz3456 345 346/^(a*\w|ab)=(a*\w|ab)/ 347 ab=ab 348 349/^(a*\w|ab)=(?1)/ 350 ab=ab 351 352/^([^()]|\((?1)*\))*$/ 353 abc 354 a(b)c 355 a(b(c))d 356 *** Failers) 357 a(b(c)d 358 359/^>abc>([^()]|\((?1)*\))*<xyz<$/ 360 >abc>123<xyz< 361 >abc>1(2)3<xyz< 362 >abc>(1(2)3)<xyz< 363 364/^(?>a*)\d/ 365 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9876 366 *** Failers 367 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 368 369/< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/x 370 <> 371 <abcd> 372 <abc <123> hij> 373 <abc <def> hij> 374 <abc<>def> 375 <abc<> 376 *** Failers 377 <abc 378 379/^(?(?=abc)\w{3}:|\d\d)$/ 380 abc: 381 12 382 *** Failers 383 123 384 xyz 385 386/^(?(?!abc)\d\d|\w{3}:)$/ 387 abc: 388 12 389 *** Failers 390 123 391 xyz 392 393/^(?=abc)\w{5}:$/ 394 abcde: 395 *** Failers 396 abc.. 397 123 398 vwxyz 399 400/^(?!abc)\d\d$/ 401 12 402 *** Failers 403 abcde: 404 abc.. 405 123 406 vwxyz 407 408/(?<=abc|xy)123/ 409 abc12345 410 wxy123z 411 *** Failers 412 123abc 413 414/(?<!abc|xy)123/ 415 123abc 416 mno123456 417 *** Failers 418 abc12345 419 wxy123z 420 421/abc(?C1)xyz/ 422 abcxyz 423 123abcxyz999 424 425/(ab|cd){3,4}/C 426 ababab 427 abcdabcd 428 abcdcdcdcdcd 429 430/^abc/ 431 abcdef 432 *** Failers 433 abcdef\B 434 435/^(a*|xyz)/ 436 bcd 437 aaabcd 438 xyz 439 xyz\N 440 *** Failers 441 bcd\N 442 443/xyz$/ 444 xyz 445 xyz\n 446 *** Failers 447 xyz\Z 448 xyz\n\Z 449 450/xyz$/m 451 xyz 452 xyz\n 453 abcxyz\npqr 454 abcxyz\npqr\Z 455 xyz\n\Z 456 *** Failers 457 xyz\Z 458 459/\Gabc/ 460 abcdef 461 defabcxyz\>3 462 *** Failers 463 defabcxyz 464 465/^abcdef/ 466 ab\P 467 abcde\P 468 abcdef\P 469 *** Failers 470 abx\P 471 472/^a{2,4}\d+z/ 473 a\P 474 aa\P 475 aa2\P 476 aaa\P 477 aaa23\P 478 aaaa12345\P 479 aa0z\P 480 aaaa4444444444444z\P 481 *** Failers 482 az\P 483 aaaaa\P 484 a56\P 485 486/^abcdef/ 487 abc\P 488 def\R 489 490/(?<=foo)bar/ 491 xyzfo\P 492 foob\P\>2 493 foobar...\R\P\>4 494 xyzfo\P 495 foobar\>2 496 *** Failers 497 xyzfo\P 498 obar\R 499 500/(ab*(cd|ef))+X/ 501 adfadadaklhlkalkajhlkjahdfasdfasdfladsfjkj\P\Z 502 lkjhlkjhlkjhlkjhabbbbbbcdaefabbbbbbbefa\P\B\Z 503 cdabbbbbbbb\P\R\B\Z 504 efabbbbbbbbbbbbbbbb\P\R\B\Z 505 bbbbbbbbbbbbcdXyasdfadf\P\R\B\Z 506 507/(a|b)/SF>testsavedregex 508<testsavedregex 509 abc 510 ** Failers 511 def 512 513/the quick brown fox/ 514 the quick brown fox 515 The quick brown FOX 516 What do you know about the quick brown fox? 517 What do you know about THE QUICK BROWN FOX? 518 519/The quick brown fox/i 520 the quick brown fox 521 The quick brown FOX 522 What do you know about the quick brown fox? 523 What do you know about THE QUICK BROWN FOX? 524 525/abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/ 526 abcd\t\n\r\f\a\e9;\$\\?caxyz 527 528/a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/ 529 abxyzpqrrrabbxyyyypqAzz 530 abxyzpqrrrabbxyyyypqAzz 531 aabxyzpqrrrabbxyyyypqAzz 532 aaabxyzpqrrrabbxyyyypqAzz 533 aaaabxyzpqrrrabbxyyyypqAzz 534 abcxyzpqrrrabbxyyyypqAzz 535 aabcxyzpqrrrabbxyyyypqAzz 536 aaabcxyzpqrrrabbxyyyypAzz 537 aaabcxyzpqrrrabbxyyyypqAzz 538 aaabcxyzpqrrrabbxyyyypqqAzz 539 aaabcxyzpqrrrabbxyyyypqqqAzz 540 aaabcxyzpqrrrabbxyyyypqqqqAzz 541 aaabcxyzpqrrrabbxyyyypqqqqqAzz 542 aaabcxyzpqrrrabbxyyyypqqqqqqAzz 543 aaaabcxyzpqrrrabbxyyyypqAzz 544 abxyzzpqrrrabbxyyyypqAzz 545 aabxyzzzpqrrrabbxyyyypqAzz 546 aaabxyzzzzpqrrrabbxyyyypqAzz 547 aaaabxyzzzzpqrrrabbxyyyypqAzz 548 abcxyzzpqrrrabbxyyyypqAzz 549 aabcxyzzzpqrrrabbxyyyypqAzz 550 aaabcxyzzzzpqrrrabbxyyyypqAzz 551 aaaabcxyzzzzpqrrrabbxyyyypqAzz 552 aaaabcxyzzzzpqrrrabbbxyyyypqAzz 553 aaaabcxyzzzzpqrrrabbbxyyyyypqAzz 554 aaabcxyzpqrrrabbxyyyypABzz 555 aaabcxyzpqrrrabbxyyyypABBzz 556 >>>aaabxyzpqrrrabbxyyyypqAzz 557 >aaaabxyzpqrrrabbxyyyypqAzz 558 >>>>abcxyzpqrrrabbxyyyypqAzz 559 *** Failers 560 abxyzpqrrabbxyyyypqAzz 561 abxyzpqrrrrabbxyyyypqAzz 562 abxyzpqrrrabxyyyypqAzz 563 aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz 564 aaaabcxyzzzzpqrrrabbbxyyypqAzz 565 aaabcxyzpqrrrabbxyyyypqqqqqqqAzz 566 567/^(abc){1,2}zz/ 568 abczz 569 abcabczz 570 *** Failers 571 zz 572 abcabcabczz 573 >>abczz 574 575/^(b+?|a){1,2}?c/ 576 bc 577 bbc 578 bbbc 579 bac 580 bbac 581 aac 582 abbbbbbbbbbbc 583 bbbbbbbbbbbac 584 *** Failers 585 aaac 586 abbbbbbbbbbbac 587 588/^(b+|a){1,2}c/ 589 bc 590 bbc 591 bbbc 592 bac 593 bbac 594 aac 595 abbbbbbbbbbbc 596 bbbbbbbbbbbac 597 *** Failers 598 aaac 599 abbbbbbbbbbbac 600 601/^(b+|a){1,2}?bc/ 602 bbc 603 604/^(b*|ba){1,2}?bc/ 605 babc 606 bbabc 607 bababc 608 *** Failers 609 bababbc 610 babababc 611 612/^(ba|b*){1,2}?bc/ 613 babc 614 bbabc 615 bababc 616 *** Failers 617 bababbc 618 babababc 619 620/^\ca\cA\c[\c{\c:/ 621 \x01\x01\e;z 622 623/^[ab\]cde]/ 624 athing 625 bthing 626 ]thing 627 cthing 628 dthing 629 ething 630 *** Failers 631 fthing 632 [thing 633 \\thing 634 635/^[]cde]/ 636 ]thing 637 cthing 638 dthing 639 ething 640 *** Failers 641 athing 642 fthing 643 644/^[^ab\]cde]/ 645 fthing 646 [thing 647 \\thing 648 *** Failers 649 athing 650 bthing 651 ]thing 652 cthing 653 dthing 654 ething 655 656/^[^]cde]/ 657 athing 658 fthing 659 *** Failers 660 ]thing 661 cthing 662 dthing 663 ething 664 665/^\�/ 666 � 667 668/^�/ 669 � 670 671/^[0-9]+$/ 672 0 673 1 674 2 675 3 676 4 677 5 678 6 679 7 680 8 681 9 682 10 683 100 684 *** Failers 685 abc 686 687/^.*nter/ 688 enter 689 inter 690 uponter 691 692/^xxx[0-9]+$/ 693 xxx0 694 xxx1234 695 *** Failers 696 xxx 697 698/^.+[0-9][0-9][0-9]$/ 699 x123 700 xx123 701 123456 702 *** Failers 703 123 704 x1234 705 706/^.+?[0-9][0-9][0-9]$/ 707 x123 708 xx123 709 123456 710 *** Failers 711 123 712 x1234 713 714/^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/ 715 abc!pqr=apquxz.ixr.zzz.ac.uk 716 *** Failers 717 !pqr=apquxz.ixr.zzz.ac.uk 718 abc!=apquxz.ixr.zzz.ac.uk 719 abc!pqr=apquxz:ixr.zzz.ac.uk 720 abc!pqr=apquxz.ixr.zzz.ac.ukk 721 722/:/ 723 Well, we need a colon: somewhere 724 *** Fail if we don't 725 726/([\da-f:]+)$/i 727 0abc 728 abc 729 fed 730 E 731 :: 732 5f03:12C0::932e 733 fed def 734 Any old stuff 735 *** Failers 736 0zzz 737 gzzz 738 fed\x20 739 Any old rubbish 740 741/^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/ 742 .1.2.3 743 A.12.123.0 744 *** Failers 745 .1.2.3333 746 1.2.3 747 1234.2.3 748 749/^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/ 750 1 IN SOA non-sp1 non-sp2( 751 1 IN SOA non-sp1 non-sp2 ( 752 *** Failers 753 1IN SOA non-sp1 non-sp2( 754 755/^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/ 756 a. 757 Z. 758 2. 759 ab-c.pq-r. 760 sxk.zzz.ac.uk. 761 x-.y-. 762 *** Failers 763 -abc.peq. 764 765/^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/ 766 *.a 767 *.b0-a 768 *.c3-b.c 769 *.c-a.b-c 770 *** Failers 771 *.0 772 *.a- 773 *.a-b.c- 774 *.c-a.0-c 775 776/^(?=ab(de))(abd)(e)/ 777 abde 778 779/^(?!(ab)de|x)(abd)(f)/ 780 abdf 781 782/^(?=(ab(cd)))(ab)/ 783 abcd 784 785/^[\da-f](\.[\da-f])*$/i 786 a.b.c.d 787 A.B.C.D 788 a.b.c.1.2.3.C 789 790/^\".*\"\s*(;.*)?$/ 791 \"1234\" 792 \"abcd\" ; 793 \"\" ; rhubarb 794 *** Failers 795 \"1234\" : things 796 797/^$/ 798 \ 799 *** Failers 800 801/ ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/x 802 ab c 803 *** Failers 804 abc 805 ab cde 806 807/(?x) ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/ 808 ab c 809 *** Failers 810 abc 811 ab cde 812 813/^ a\ b[c ]d $/x 814 a bcd 815 a b d 816 *** Failers 817 abcd 818 ab d 819 820/^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/ 821 abcdefhijklm 822 823/^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/ 824 abcdefhijklm 825 826/^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/ 827 a+ Z0+\x08\n\x1d\x12 828 829/^[.^$|()*+?{,}]+/ 830 .^\$(*+)|{?,?} 831 832/^a*\w/ 833 z 834 az 835 aaaz 836 a 837 aa 838 aaaa 839 a+ 840 aa+ 841 842/^a*?\w/ 843 z 844 az 845 aaaz 846 a 847 aa 848 aaaa 849 a+ 850 aa+ 851 852/^a+\w/ 853 az 854 aaaz 855 aa 856 aaaa 857 aa+ 858 859/^a+?\w/ 860 az 861 aaaz 862 aa 863 aaaa 864 aa+ 865 866/^\d{8}\w{2,}/ 867 1234567890 868 12345678ab 869 12345678__ 870 *** Failers 871 1234567 872 873/^[aeiou\d]{4,5}$/ 874 uoie 875 1234 876 12345 877 aaaaa 878 *** Failers 879 123456 880 881/^[aeiou\d]{4,5}?/ 882 uoie 883 1234 884 12345 885 aaaaa 886 123456 887 888/^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]/ 889 From abcd Mon Sep 01 12:33:02 1997 890 891/^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/ 892 From abcd Mon Sep 01 12:33:02 1997 893 From abcd Mon Sep 1 12:33:02 1997 894 *** Failers 895 From abcd Sep 01 12:33:02 1997 896 897/^12.34/s 898 12\n34 899 12\r34 900 901/\w+(?=\t)/ 902 the quick brown\t fox 903 904/foo(?!bar)(.*)/ 905 foobar is foolish see? 906 907/(?:(?!foo)...|^.{0,2})bar(.*)/ 908 foobar crowbar etc 909 barrel 910 2barrel 911 A barrel 912 913/^(\D*)(?=\d)(?!123)/ 914 abc456 915 *** Failers 916 abc123 917 918/^1234(?# test newlines 919 inside)/ 920 1234 921 922/^1234 #comment in extended re 923 /x 924 1234 925 926/#rhubarb 927 abcd/x 928 abcd 929 930/^abcd#rhubarb/x 931 abcd 932 933/(?!^)abc/ 934 the abc 935 *** Failers 936 abc 937 938/(?=^)abc/ 939 abc 940 *** Failers 941 the abc 942 943/^[ab]{1,3}(ab*|b)/O 944 aabbbbb 945 946/^[ab]{1,3}?(ab*|b)/O 947 aabbbbb 948 949/^[ab]{1,3}?(ab*?|b)/O 950 aabbbbb 951 952/^[ab]{1,3}(ab*?|b)/O 953 aabbbbb 954 955/ (?: [\040\t] | \( 956(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 957\) )* # optional leading comment 958(?: (?: 959[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 960(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 961| 962" (?: # opening quote... 963[^\\\x80-\xff\n\015"] # Anything except backslash and quote 964| # or 965\\ [^\x80-\xff] # Escaped something (something != CR) 966)* " # closing quote 967) # initial word 968(?: (?: [\040\t] | \( 969(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 970\) )* \. (?: [\040\t] | \( 971(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 972\) )* (?: 973[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 974(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 975| 976" (?: # opening quote... 977[^\\\x80-\xff\n\015"] # Anything except backslash and quote 978| # or 979\\ [^\x80-\xff] # Escaped something (something != CR) 980)* " # closing quote 981) )* # further okay, if led by a period 982(?: [\040\t] | \( 983(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 984\) )* @ (?: [\040\t] | \( 985(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 986\) )* (?: 987[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 988(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 989| \[ # [ 990(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 991\] # ] 992) # initial subdomain 993(?: # 994(?: [\040\t] | \( 995(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 996\) )* \. # if led by a period... 997(?: [\040\t] | \( 998(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 999\) )* (?: 1000[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1001(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1002| \[ # [ 1003(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1004\] # ] 1005) # ...further okay 1006)* 1007# address 1008| # or 1009(?: 1010[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1011(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1012| 1013" (?: # opening quote... 1014[^\\\x80-\xff\n\015"] # Anything except backslash and quote 1015| # or 1016\\ [^\x80-\xff] # Escaped something (something != CR) 1017)* " # closing quote 1018) # one word, optionally followed by.... 1019(?: 1020[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or... 1021\( 1022(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1023\) | # comments, or... 1024 1025" (?: # opening quote... 1026[^\\\x80-\xff\n\015"] # Anything except backslash and quote 1027| # or 1028\\ [^\x80-\xff] # Escaped something (something != CR) 1029)* " # closing quote 1030# quoted strings 1031)* 1032< (?: [\040\t] | \( 1033(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1034\) )* # leading < 1035(?: @ (?: [\040\t] | \( 1036(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1037\) )* (?: 1038[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1039(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1040| \[ # [ 1041(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1042\] # ] 1043) # initial subdomain 1044(?: # 1045(?: [\040\t] | \( 1046(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1047\) )* \. # if led by a period... 1048(?: [\040\t] | \( 1049(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1050\) )* (?: 1051[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1052(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1053| \[ # [ 1054(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1055\] # ] 1056) # ...further okay 1057)* 1058 1059(?: (?: [\040\t] | \( 1060(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1061\) )* , (?: [\040\t] | \( 1062(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1063\) )* @ (?: [\040\t] | \( 1064(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1065\) )* (?: 1066[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1067(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1068| \[ # [ 1069(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1070\] # ] 1071) # initial subdomain 1072(?: # 1073(?: [\040\t] | \( 1074(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1075\) )* \. # if led by a period... 1076(?: [\040\t] | \( 1077(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1078\) )* (?: 1079[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1080(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1081| \[ # [ 1082(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1083\] # ] 1084) # ...further okay 1085)* 1086)* # further okay, if led by comma 1087: # closing colon 1088(?: [\040\t] | \( 1089(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1090\) )* )? # optional route 1091(?: 1092[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1093(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1094| 1095" (?: # opening quote... 1096[^\\\x80-\xff\n\015"] # Anything except backslash and quote 1097| # or 1098\\ [^\x80-\xff] # Escaped something (something != CR) 1099)* " # closing quote 1100) # initial word 1101(?: (?: [\040\t] | \( 1102(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1103\) )* \. (?: [\040\t] | \( 1104(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1105\) )* (?: 1106[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1107(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1108| 1109" (?: # opening quote... 1110[^\\\x80-\xff\n\015"] # Anything except backslash and quote 1111| # or 1112\\ [^\x80-\xff] # Escaped something (something != CR) 1113)* " # closing quote 1114) )* # further okay, if led by a period 1115(?: [\040\t] | \( 1116(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1117\) )* @ (?: [\040\t] | \( 1118(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1119\) )* (?: 1120[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1121(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1122| \[ # [ 1123(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1124\] # ] 1125) # initial subdomain 1126(?: # 1127(?: [\040\t] | \( 1128(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1129\) )* \. # if led by a period... 1130(?: [\040\t] | \( 1131(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1132\) )* (?: 1133[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1134(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1135| \[ # [ 1136(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1137\] # ] 1138) # ...further okay 1139)* 1140# address spec 1141(?: [\040\t] | \( 1142(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1143\) )* > # trailing > 1144# name and address 1145) (?: [\040\t] | \( 1146(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1147\) )* # optional trailing comment 1148/x 1149 Alan Other <user\@dom.ain> 1150 <user\@dom.ain> 1151 user\@dom.ain 1152 \"A. Other\" <user.1234\@dom.ain> (a comment) 1153 A. Other <user.1234\@dom.ain> (a comment) 1154 \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay 1155 A missing angle <user\@some.where 1156 *** Failers 1157 The quick brown fox 1158 1159/[\040\t]* # Nab whitespace. 1160(?: 1161\( # ( 1162[^\\\x80-\xff\n\015()] * # normal* 1163(?: # ( 1164(?: \\ [^\x80-\xff] | 1165\( # ( 1166[^\\\x80-\xff\n\015()] * # normal* 1167(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1168\) # ) 1169) # special 1170[^\\\x80-\xff\n\015()] * # normal* 1171)* # )* 1172\) # ) 1173[\040\t]* )* # If comment found, allow more spaces. 1174# optional leading comment 1175(?: 1176(?: 1177[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1178(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1179# Atom 1180| # or 1181" # " 1182[^\\\x80-\xff\n\015"] * # normal 1183(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* 1184" # " 1185# Quoted string 1186) 1187[\040\t]* # Nab whitespace. 1188(?: 1189\( # ( 1190[^\\\x80-\xff\n\015()] * # normal* 1191(?: # ( 1192(?: \\ [^\x80-\xff] | 1193\( # ( 1194[^\\\x80-\xff\n\015()] * # normal* 1195(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1196\) # ) 1197) # special 1198[^\\\x80-\xff\n\015()] * # normal* 1199)* # )* 1200\) # ) 1201[\040\t]* )* # If comment found, allow more spaces. 1202(?: 1203\. 1204[\040\t]* # Nab whitespace. 1205(?: 1206\( # ( 1207[^\\\x80-\xff\n\015()] * # normal* 1208(?: # ( 1209(?: \\ [^\x80-\xff] | 1210\( # ( 1211[^\\\x80-\xff\n\015()] * # normal* 1212(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1213\) # ) 1214) # special 1215[^\\\x80-\xff\n\015()] * # normal* 1216)* # )* 1217\) # ) 1218[\040\t]* )* # If comment found, allow more spaces. 1219(?: 1220[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1221(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1222# Atom 1223| # or 1224" # " 1225[^\\\x80-\xff\n\015"] * # normal 1226(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* 1227" # " 1228# Quoted string 1229) 1230[\040\t]* # Nab whitespace. 1231(?: 1232\( # ( 1233[^\\\x80-\xff\n\015()] * # normal* 1234(?: # ( 1235(?: \\ [^\x80-\xff] | 1236\( # ( 1237[^\\\x80-\xff\n\015()] * # normal* 1238(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1239\) # ) 1240) # special 1241[^\\\x80-\xff\n\015()] * # normal* 1242)* # )* 1243\) # ) 1244[\040\t]* )* # If comment found, allow more spaces. 1245# additional words 1246)* 1247@ 1248[\040\t]* # Nab whitespace. 1249(?: 1250\( # ( 1251[^\\\x80-\xff\n\015()] * # normal* 1252(?: # ( 1253(?: \\ [^\x80-\xff] | 1254\( # ( 1255[^\\\x80-\xff\n\015()] * # normal* 1256(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1257\) # ) 1258) # special 1259[^\\\x80-\xff\n\015()] * # normal* 1260)* # )* 1261\) # ) 1262[\040\t]* )* # If comment found, allow more spaces. 1263(?: 1264[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1265(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1266| 1267\[ # [ 1268(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1269\] # ] 1270) 1271[\040\t]* # Nab whitespace. 1272(?: 1273\( # ( 1274[^\\\x80-\xff\n\015()] * # normal* 1275(?: # ( 1276(?: \\ [^\x80-\xff] | 1277\( # ( 1278[^\\\x80-\xff\n\015()] * # normal* 1279(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1280\) # ) 1281) # special 1282[^\\\x80-\xff\n\015()] * # normal* 1283)* # )* 1284\) # ) 1285[\040\t]* )* # If comment found, allow more spaces. 1286# optional trailing comments 1287(?: 1288\. 1289[\040\t]* # Nab whitespace. 1290(?: 1291\( # ( 1292[^\\\x80-\xff\n\015()] * # normal* 1293(?: # ( 1294(?: \\ [^\x80-\xff] | 1295\( # ( 1296[^\\\x80-\xff\n\015()] * # normal* 1297(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1298\) # ) 1299) # special 1300[^\\\x80-\xff\n\015()] * # normal* 1301)* # )* 1302\) # ) 1303[\040\t]* )* # If comment found, allow more spaces. 1304(?: 1305[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1306(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1307| 1308\[ # [ 1309(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1310\] # ] 1311) 1312[\040\t]* # Nab whitespace. 1313(?: 1314\( # ( 1315[^\\\x80-\xff\n\015()] * # normal* 1316(?: # ( 1317(?: \\ [^\x80-\xff] | 1318\( # ( 1319[^\\\x80-\xff\n\015()] * # normal* 1320(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1321\) # ) 1322) # special 1323[^\\\x80-\xff\n\015()] * # normal* 1324)* # )* 1325\) # ) 1326[\040\t]* )* # If comment found, allow more spaces. 1327# optional trailing comments 1328)* 1329# address 1330| # or 1331(?: 1332[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1333(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1334# Atom 1335| # or 1336" # " 1337[^\\\x80-\xff\n\015"] * # normal 1338(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* 1339" # " 1340# Quoted string 1341) 1342# leading word 1343[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # "normal" atoms and or spaces 1344(?: 1345(?: 1346\( # ( 1347[^\\\x80-\xff\n\015()] * # normal* 1348(?: # ( 1349(?: \\ [^\x80-\xff] | 1350\( # ( 1351[^\\\x80-\xff\n\015()] * # normal* 1352(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1353\) # ) 1354) # special 1355[^\\\x80-\xff\n\015()] * # normal* 1356)* # )* 1357\) # ) 1358| 1359" # " 1360[^\\\x80-\xff\n\015"] * # normal 1361(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* 1362" # " 1363) # "special" comment or quoted string 1364[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # more "normal" 1365)* 1366< 1367[\040\t]* # Nab whitespace. 1368(?: 1369\( # ( 1370[^\\\x80-\xff\n\015()] * # normal* 1371(?: # ( 1372(?: \\ [^\x80-\xff] | 1373\( # ( 1374[^\\\x80-\xff\n\015()] * # normal* 1375(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1376\) # ) 1377) # special 1378[^\\\x80-\xff\n\015()] * # normal* 1379)* # )* 1380\) # ) 1381[\040\t]* )* # If comment found, allow more spaces. 1382# < 1383(?: 1384@ 1385[\040\t]* # Nab whitespace. 1386(?: 1387\( # ( 1388[^\\\x80-\xff\n\015()] * # normal* 1389(?: # ( 1390(?: \\ [^\x80-\xff] | 1391\( # ( 1392[^\\\x80-\xff\n\015()] * # normal* 1393(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1394\) # ) 1395) # special 1396[^\\\x80-\xff\n\015()] * # normal* 1397)* # )* 1398\) # ) 1399[\040\t]* )* # If comment found, allow more spaces. 1400(?: 1401[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1402(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1403| 1404\[ # [ 1405(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1406\] # ] 1407) 1408[\040\t]* # Nab whitespace. 1409(?: 1410\( # ( 1411[^\\\x80-\xff\n\015()] * # normal* 1412(?: # ( 1413(?: \\ [^\x80-\xff] | 1414\( # ( 1415[^\\\x80-\xff\n\015()] * # normal* 1416(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1417\) # ) 1418) # special 1419[^\\\x80-\xff\n\015()] * # normal* 1420)* # )* 1421\) # ) 1422[\040\t]* )* # If comment found, allow more spaces. 1423# optional trailing comments 1424(?: 1425\. 1426[\040\t]* # Nab whitespace. 1427(?: 1428\( # ( 1429[^\\\x80-\xff\n\015()] * # normal* 1430(?: # ( 1431(?: \\ [^\x80-\xff] | 1432\( # ( 1433[^\\\x80-\xff\n\015()] * # normal* 1434(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1435\) # ) 1436) # special 1437[^\\\x80-\xff\n\015()] * # normal* 1438)* # )* 1439\) # ) 1440[\040\t]* )* # If comment found, allow more spaces. 1441(?: 1442[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1443(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1444| 1445\[ # [ 1446(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1447\] # ] 1448) 1449[\040\t]* # Nab whitespace. 1450(?: 1451\( # ( 1452[^\\\x80-\xff\n\015()] * # normal* 1453(?: # ( 1454(?: \\ [^\x80-\xff] | 1455\( # ( 1456[^\\\x80-\xff\n\015()] * # normal* 1457(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1458\) # ) 1459) # special 1460[^\\\x80-\xff\n\015()] * # normal* 1461)* # )* 1462\) # ) 1463[\040\t]* )* # If comment found, allow more spaces. 1464# optional trailing comments 1465)* 1466(?: , 1467[\040\t]* # Nab whitespace. 1468(?: 1469\( # ( 1470[^\\\x80-\xff\n\015()] * # normal* 1471(?: # ( 1472(?: \\ [^\x80-\xff] | 1473\( # ( 1474[^\\\x80-\xff\n\015()] * # normal* 1475(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1476\) # ) 1477) # special 1478[^\\\x80-\xff\n\015()] * # normal* 1479)* # )* 1480\) # ) 1481[\040\t]* )* # If comment found, allow more spaces. 1482@ 1483[\040\t]* # Nab whitespace. 1484(?: 1485\( # ( 1486[^\\\x80-\xff\n\015()] * # normal* 1487(?: # ( 1488(?: \\ [^\x80-\xff] | 1489\( # ( 1490[^\\\x80-\xff\n\015()] * # normal* 1491(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1492\) # ) 1493) # special 1494[^\\\x80-\xff\n\015()] * # normal* 1495)* # )* 1496\) # ) 1497[\040\t]* )* # If comment found, allow more spaces. 1498(?: 1499[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1500(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1501| 1502\[ # [ 1503(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1504\] # ] 1505) 1506[\040\t]* # Nab whitespace. 1507(?: 1508\( # ( 1509[^\\\x80-\xff\n\015()] * # normal* 1510(?: # ( 1511(?: \\ [^\x80-\xff] | 1512\( # ( 1513[^\\\x80-\xff\n\015()] * # normal* 1514(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1515\) # ) 1516) # special 1517[^\\\x80-\xff\n\015()] * # normal* 1518)* # )* 1519\) # ) 1520[\040\t]* )* # If comment found, allow more spaces. 1521# optional trailing comments 1522(?: 1523\. 1524[\040\t]* # Nab whitespace. 1525(?: 1526\( # ( 1527[^\\\x80-\xff\n\015()] * # normal* 1528(?: # ( 1529(?: \\ [^\x80-\xff] | 1530\( # ( 1531[^\\\x80-\xff\n\015()] * # normal* 1532(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1533\) # ) 1534) # special 1535[^\\\x80-\xff\n\015()] * # normal* 1536)* # )* 1537\) # ) 1538[\040\t]* )* # If comment found, allow more spaces. 1539(?: 1540[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1541(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1542| 1543\[ # [ 1544(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1545\] # ] 1546) 1547[\040\t]* # Nab whitespace. 1548(?: 1549\( # ( 1550[^\\\x80-\xff\n\015()] * # normal* 1551(?: # ( 1552(?: \\ [^\x80-\xff] | 1553\( # ( 1554[^\\\x80-\xff\n\015()] * # normal* 1555(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1556\) # ) 1557) # special 1558[^\\\x80-\xff\n\015()] * # normal* 1559)* # )* 1560\) # ) 1561[\040\t]* )* # If comment found, allow more spaces. 1562# optional trailing comments 1563)* 1564)* # additional domains 1565: 1566[\040\t]* # Nab whitespace. 1567(?: 1568\( # ( 1569[^\\\x80-\xff\n\015()] * # normal* 1570(?: # ( 1571(?: \\ [^\x80-\xff] | 1572\( # ( 1573[^\\\x80-\xff\n\015()] * # normal* 1574(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1575\) # ) 1576) # special 1577[^\\\x80-\xff\n\015()] * # normal* 1578)* # )* 1579\) # ) 1580[\040\t]* )* # If comment found, allow more spaces. 1581# optional trailing comments 1582)? # optional route 1583(?: 1584[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1585(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1586# Atom 1587| # or 1588" # " 1589[^\\\x80-\xff\n\015"] * # normal 1590(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* 1591" # " 1592# Quoted string 1593) 1594[\040\t]* # Nab whitespace. 1595(?: 1596\( # ( 1597[^\\\x80-\xff\n\015()] * # normal* 1598(?: # ( 1599(?: \\ [^\x80-\xff] | 1600\( # ( 1601[^\\\x80-\xff\n\015()] * # normal* 1602(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1603\) # ) 1604) # special 1605[^\\\x80-\xff\n\015()] * # normal* 1606)* # )* 1607\) # ) 1608[\040\t]* )* # If comment found, allow more spaces. 1609(?: 1610\. 1611[\040\t]* # Nab whitespace. 1612(?: 1613\( # ( 1614[^\\\x80-\xff\n\015()] * # normal* 1615(?: # ( 1616(?: \\ [^\x80-\xff] | 1617\( # ( 1618[^\\\x80-\xff\n\015()] * # normal* 1619(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1620\) # ) 1621) # special 1622[^\\\x80-\xff\n\015()] * # normal* 1623)* # )* 1624\) # ) 1625[\040\t]* )* # If comment found, allow more spaces. 1626(?: 1627[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1628(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1629# Atom 1630| # or 1631" # " 1632[^\\\x80-\xff\n\015"] * # normal 1633(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* 1634" # " 1635# Quoted string 1636) 1637[\040\t]* # Nab whitespace. 1638(?: 1639\( # ( 1640[^\\\x80-\xff\n\015()] * # normal* 1641(?: # ( 1642(?: \\ [^\x80-\xff] | 1643\( # ( 1644[^\\\x80-\xff\n\015()] * # normal* 1645(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1646\) # ) 1647) # special 1648[^\\\x80-\xff\n\015()] * # normal* 1649)* # )* 1650\) # ) 1651[\040\t]* )* # If comment found, allow more spaces. 1652# additional words 1653)* 1654@ 1655[\040\t]* # Nab whitespace. 1656(?: 1657\( # ( 1658[^\\\x80-\xff\n\015()] * # normal* 1659(?: # ( 1660(?: \\ [^\x80-\xff] | 1661\( # ( 1662[^\\\x80-\xff\n\015()] * # normal* 1663(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1664\) # ) 1665) # special 1666[^\\\x80-\xff\n\015()] * # normal* 1667)* # )* 1668\) # ) 1669[\040\t]* )* # If comment found, allow more spaces. 1670(?: 1671[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1672(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1673| 1674\[ # [ 1675(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1676\] # ] 1677) 1678[\040\t]* # Nab whitespace. 1679(?: 1680\( # ( 1681[^\\\x80-\xff\n\015()] * # normal* 1682(?: # ( 1683(?: \\ [^\x80-\xff] | 1684\( # ( 1685[^\\\x80-\xff\n\015()] * # normal* 1686(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1687\) # ) 1688) # special 1689[^\\\x80-\xff\n\015()] * # normal* 1690)* # )* 1691\) # ) 1692[\040\t]* )* # If comment found, allow more spaces. 1693# optional trailing comments 1694(?: 1695\. 1696[\040\t]* # Nab whitespace. 1697(?: 1698\( # ( 1699[^\\\x80-\xff\n\015()] * # normal* 1700(?: # ( 1701(?: \\ [^\x80-\xff] | 1702\( # ( 1703[^\\\x80-\xff\n\015()] * # normal* 1704(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1705\) # ) 1706) # special 1707[^\\\x80-\xff\n\015()] * # normal* 1708)* # )* 1709\) # ) 1710[\040\t]* )* # If comment found, allow more spaces. 1711(?: 1712[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1713(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1714| 1715\[ # [ 1716(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1717\] # ] 1718) 1719[\040\t]* # Nab whitespace. 1720(?: 1721\( # ( 1722[^\\\x80-\xff\n\015()] * # normal* 1723(?: # ( 1724(?: \\ [^\x80-\xff] | 1725\( # ( 1726[^\\\x80-\xff\n\015()] * # normal* 1727(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1728\) # ) 1729) # special 1730[^\\\x80-\xff\n\015()] * # normal* 1731)* # )* 1732\) # ) 1733[\040\t]* )* # If comment found, allow more spaces. 1734# optional trailing comments 1735)* 1736# address spec 1737> # > 1738# name and address 1739) 1740/x 1741 Alan Other <user\@dom.ain> 1742 <user\@dom.ain> 1743 user\@dom.ain 1744 \"A. Other\" <user.1234\@dom.ain> (a comment) 1745 A. Other <user.1234\@dom.ain> (a comment) 1746 \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay 1747 A missing angle <user\@some.where 1748 *** Failers 1749 The quick brown fox 1750 1751/abc\0def\00pqr\000xyz\0000AB/ 1752 abc\0def\00pqr\000xyz\0000AB 1753 abc456 abc\0def\00pqr\000xyz\0000ABCDE 1754 1755/abc\x0def\x00pqr\x000xyz\x0000AB/ 1756 abc\x0def\x00pqr\x000xyz\x0000AB 1757 abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE 1758 1759/^[\000-\037]/ 1760 \0A 1761 \01B 1762 \037C 1763 1764/\0*/ 1765 \0\0\0\0 1766 1767/A\x0{2,3}Z/ 1768 The A\x0\x0Z 1769 An A\0\x0\0Z 1770 *** Failers 1771 A\0Z 1772 A\0\x0\0\x0Z 1773 1774/^\s/ 1775 \040abc 1776 \x0cabc 1777 \nabc 1778 \rabc 1779 \tabc 1780 *** Failers 1781 abc 1782 1783/^a b 1784 c/x 1785 abc 1786 1787/ab{1,3}bc/ 1788 abbbbc 1789 abbbc 1790 abbc 1791 *** Failers 1792 abc 1793 abbbbbc 1794 1795/([^.]*)\.([^:]*):[T ]+(.*)/ 1796 track1.title:TBlah blah blah 1797 1798/([^.]*)\.([^:]*):[T ]+(.*)/i 1799 track1.title:TBlah blah blah 1800 1801/([^.]*)\.([^:]*):[t ]+(.*)/i 1802 track1.title:TBlah blah blah 1803 1804/^[W-c]+$/ 1805 WXY_^abc 1806 *** Failers 1807 wxy 1808 1809/^[W-c]+$/i 1810 WXY_^abc 1811 wxy_^ABC 1812 1813/^[\x3f-\x5F]+$/i 1814 WXY_^abc 1815 wxy_^ABC 1816 1817/^abc$/m 1818 abc 1819 qqq\nabc 1820 abc\nzzz 1821 qqq\nabc\nzzz 1822 1823/^abc$/ 1824 abc 1825 *** Failers 1826 qqq\nabc 1827 abc\nzzz 1828 qqq\nabc\nzzz 1829 1830/\Aabc\Z/m 1831 abc 1832 abc\n 1833 *** Failers 1834 qqq\nabc 1835 abc\nzzz 1836 qqq\nabc\nzzz 1837 1838/\A(.)*\Z/s 1839 abc\ndef 1840 1841/\A(.)*\Z/m 1842 *** Failers 1843 abc\ndef 1844 1845/(?:b)|(?::+)/ 1846 b::c 1847 c::b 1848 1849/[-az]+/ 1850 az- 1851 *** Failers 1852 b 1853 1854/[az-]+/ 1855 za- 1856 *** Failers 1857 b 1858 1859/[a\-z]+/ 1860 a-z 1861 *** Failers 1862 b 1863 1864/[a-z]+/ 1865 abcdxyz 1866 1867/[\d-]+/ 1868 12-34 1869 *** Failers 1870 aaa 1871 1872/[\d-z]+/ 1873 12-34z 1874 *** Failers 1875 aaa 1876 1877/\x5c/ 1878 \\ 1879 1880/\x20Z/ 1881 the Zoo 1882 *** Failers 1883 Zulu 1884 1885/ab{3cd/ 1886 ab{3cd 1887 1888/ab{3,cd/ 1889 ab{3,cd 1890 1891/ab{3,4a}cd/ 1892 ab{3,4a}cd 1893 1894/{4,5a}bc/ 1895 {4,5a}bc 1896 1897/^a.b/<lf> 1898 a\rb 1899 *** Failers 1900 a\nb 1901 1902/abc$/ 1903 abc 1904 abc\n 1905 *** Failers 1906 abc\ndef 1907 1908/(abc)\123/ 1909 abc\x53 1910 1911/(abc)\223/ 1912 abc\x93 1913 1914/(abc)\323/ 1915 abc\xd3 1916 1917/(abc)\100/ 1918 abc\x40 1919 abc\100 1920 1921/(abc)\1000/ 1922 abc\x400 1923 abc\x40\x30 1924 abc\1000 1925 abc\100\x30 1926 abc\100\060 1927 abc\100\60 1928 1929/^A\8B\9C$/ 1930 A8B9C 1931 *** Failers 1932 A\08B\09C 1933 1934/^[A\8B\9C]+$/ 1935 A8B9C 1936 *** Failers 1937 A8B9C\x00 1938 1939/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/ 1940 abcdefghijk\12S 1941 1942/ab\idef/ 1943 abidef 1944 1945/a{0}bc/ 1946 bc 1947 1948/(a|(bc)){0,0}?xyz/ 1949 xyz 1950 1951/abc[\10]de/ 1952 abc\010de 1953 1954/abc[\1]de/ 1955 abc\1de 1956 1957/(abc)[\1]de/ 1958 abc\1de 1959 1960/(?s)a.b/ 1961 a\nb 1962 1963/^([^a])([^\b])([^c]*)([^d]{3,4})/ 1964 baNOTccccd 1965 baNOTcccd 1966 baNOTccd 1967 bacccd 1968 *** Failers 1969 anything 1970 b\bc 1971 baccd 1972 1973/[^a]/ 1974 Abc 1975 1976/[^a]/i 1977 Abc 1978 1979/[^a]+/ 1980 AAAaAbc 1981 1982/[^a]+/i 1983 AAAaAbc 1984 1985/[^a]+/ 1986 bbb\nccc 1987 1988/[^k]$/ 1989 abc 1990 *** Failers 1991 abk 1992 1993/[^k]{2,3}$/ 1994 abc 1995 kbc 1996 kabc 1997 *** Failers 1998 abk 1999 akb 2000 akk 2001 2002/^\d{8,}\@.+[^k]$/ 2003 12345678\@a.b.c.d 2004 123456789\@x.y.z 2005 *** Failers 2006 12345678\@x.y.uk 2007 1234567\@a.b.c.d 2008 2009/[^a]/ 2010 aaaabcd 2011 aaAabcd 2012 2013/[^a]/i 2014 aaaabcd 2015 aaAabcd 2016 2017/[^az]/ 2018 aaaabcd 2019 aaAabcd 2020 2021/[^az]/i 2022 aaaabcd 2023 aaAabcd 2024 2025/\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/ 2026 \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 2027 2028/P[^*]TAIRE[^*]{1,6}?LL/ 2029 xxxxxxxxxxxPSTAIREISLLxxxxxxxxx 2030 2031/P[^*]TAIRE[^*]{1,}?LL/ 2032 xxxxxxxxxxxPSTAIREISLLxxxxxxxxx 2033 2034/(\.\d\d[1-9]?)\d+/ 2035 1.230003938 2036 1.875000282 2037 1.235 2038 2039/(\.\d\d((?=0)|\d(?=\d)))/ 2040 1.230003938 2041 1.875000282 2042 *** Failers 2043 1.235 2044 2045/a(?)b/ 2046 ab 2047 2048/\b(foo)\s+(\w+)/i 2049 Food is on the foo table 2050 2051/foo(.*)bar/ 2052 The food is under the bar in the barn. 2053 2054/foo(.*?)bar/ 2055 The food is under the bar in the barn. 2056 2057/(.*)(\d*)/O 2058 I have 2 numbers: 53147 2059 2060/(.*)(\d+)/ 2061 I have 2 numbers: 53147 2062 2063/(.*?)(\d*)/O 2064 I have 2 numbers: 53147 2065 2066/(.*?)(\d+)/ 2067 I have 2 numbers: 53147 2068 2069/(.*)(\d+)$/ 2070 I have 2 numbers: 53147 2071 2072/(.*?)(\d+)$/ 2073 I have 2 numbers: 53147 2074 2075/(.*)\b(\d+)$/ 2076 I have 2 numbers: 53147 2077 2078/(.*\D)(\d+)$/ 2079 I have 2 numbers: 53147 2080 2081/^\D*(?!123)/ 2082 ABC123 2083 2084/^(\D*)(?=\d)(?!123)/ 2085 ABC445 2086 *** Failers 2087 ABC123 2088 2089/^[W-]46]/ 2090 W46]789 2091 -46]789 2092 *** Failers 2093 Wall 2094 Zebra 2095 42 2096 [abcd] 2097 ]abcd[ 2098 2099/^[W-\]46]/ 2100 W46]789 2101 Wall 2102 Zebra 2103 Xylophone 2104 42 2105 [abcd] 2106 ]abcd[ 2107 \\backslash 2108 *** Failers 2109 -46]789 2110 well 2111 2112/\d\d\/\d\d\/\d\d\d\d/ 2113 01/01/2000 2114 2115/word (?:[a-zA-Z0-9]+ ){0,10}otherword/ 2116 word cat dog elephant mussel cow horse canary baboon snake shark otherword 2117 word cat dog elephant mussel cow horse canary baboon snake shark 2118 2119/word (?:[a-zA-Z0-9]+ ){0,300}otherword/ 2120 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 2121 2122/^(a){0,0}/ 2123 bcd 2124 abc 2125 aab 2126 2127/^(a){0,1}/ 2128 bcd 2129 abc 2130 aab 2131 2132/^(a){0,2}/ 2133 bcd 2134 abc 2135 aab 2136 2137/^(a){0,3}/ 2138 bcd 2139 abc 2140 aab 2141 aaa 2142 2143/^(a){0,}/ 2144 bcd 2145 abc 2146 aab 2147 aaa 2148 aaaaaaaa 2149 2150/^(a){1,1}/ 2151 bcd 2152 abc 2153 aab 2154 2155/^(a){1,2}/ 2156 bcd 2157 abc 2158 aab 2159 2160/^(a){1,3}/ 2161 bcd 2162 abc 2163 aab 2164 aaa 2165 2166/^(a){1,}/ 2167 bcd 2168 abc 2169 aab 2170 aaa 2171 aaaaaaaa 2172 2173/.*\.gif/ 2174 borfle\nbib.gif\nno 2175 2176/.{0,}\.gif/ 2177 borfle\nbib.gif\nno 2178 2179/.*\.gif/m 2180 borfle\nbib.gif\nno 2181 2182/.*\.gif/s 2183 borfle\nbib.gif\nno 2184 2185/.*\.gif/ms 2186 borfle\nbib.gif\nno 2187 2188/.*$/ 2189 borfle\nbib.gif\nno 2190 2191/.*$/m 2192 borfle\nbib.gif\nno 2193 2194/.*$/s 2195 borfle\nbib.gif\nno 2196 2197/.*$/ms 2198 borfle\nbib.gif\nno 2199 2200/.*$/ 2201 borfle\nbib.gif\nno\n 2202 2203/.*$/m 2204 borfle\nbib.gif\nno\n 2205 2206/.*$/s 2207 borfle\nbib.gif\nno\n 2208 2209/.*$/ms 2210 borfle\nbib.gif\nno\n 2211 2212/(.*X|^B)/ 2213 abcde\n1234Xyz 2214 BarFoo 2215 *** Failers 2216 abcde\nBar 2217 2218/(.*X|^B)/m 2219 abcde\n1234Xyz 2220 BarFoo 2221 abcde\nBar 2222 2223/(.*X|^B)/s 2224 abcde\n1234Xyz 2225 BarFoo 2226 *** Failers 2227 abcde\nBar 2228 2229/(.*X|^B)/ms 2230 abcde\n1234Xyz 2231 BarFoo 2232 abcde\nBar 2233 2234/(?s)(.*X|^B)/ 2235 abcde\n1234Xyz 2236 BarFoo 2237 *** Failers 2238 abcde\nBar 2239 2240/(?s:.*X|^B)/ 2241 abcde\n1234Xyz 2242 BarFoo 2243 *** Failers 2244 abcde\nBar 2245 2246/^.*B/ 2247 **** Failers 2248 abc\nB 2249 2250/(?s)^.*B/ 2251 abc\nB 2252 2253/(?m)^.*B/ 2254 abc\nB 2255 2256/(?ms)^.*B/ 2257 abc\nB 2258 2259/(?ms)^B/ 2260 abc\nB 2261 2262/(?s)B$/ 2263 B\n 2264 2265/^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/ 2266 123456654321 2267 2268/^\d\d\d\d\d\d\d\d\d\d\d\d/ 2269 123456654321 2270 2271/^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/ 2272 123456654321 2273 2274/^[abc]{12}/ 2275 abcabcabcabc 2276 2277/^[a-c]{12}/ 2278 abcabcabcabc 2279 2280/^(a|b|c){12}/ 2281 abcabcabcabc 2282 2283/^[abcdefghijklmnopqrstuvwxy0123456789]/ 2284 n 2285 *** Failers 2286 z 2287 2288/abcde{0,0}/ 2289 abcd 2290 *** Failers 2291 abce 2292 2293/ab[cd]{0,0}e/ 2294 abe 2295 *** Failers 2296 abcde 2297 2298/ab(c){0,0}d/ 2299 abd 2300 *** Failers 2301 abcd 2302 2303/a(b*)/ 2304 a 2305 ab 2306 abbbb 2307 *** Failers 2308 bbbbb 2309 2310/ab\d{0}e/ 2311 abe 2312 *** Failers 2313 ab1e 2314 2315/"([^\\"]+|\\.)*"/ 2316 the \"quick\" brown fox 2317 \"the \\\"quick\\\" brown fox\" 2318 2319/.*?/g+ 2320 abc 2321 2322/\b/g+ 2323 abc 2324 2325/\b/+g 2326 abc 2327 2328//g 2329 abc 2330 2331/<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/is 2332 <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> 2333 2334/a[^a]b/ 2335 acb 2336 a\nb 2337 2338/a.b/ 2339 acb 2340 *** Failers 2341 a\nb 2342 2343/a[^a]b/s 2344 acb 2345 a\nb 2346 2347/a.b/s 2348 acb 2349 a\nb 2350 2351/^(b+?|a){1,2}?c/ 2352 bac 2353 bbac 2354 bbbac 2355 bbbbac 2356 bbbbbac 2357 2358/^(b+|a){1,2}?c/ 2359 bac 2360 bbac 2361 bbbac 2362 bbbbac 2363 bbbbbac 2364 2365/(?!\A)x/m 2366 x\nb\n 2367 a\bx\n 2368 2369/\x0{ab}/ 2370 \0{ab} 2371 2372/(A|B)*?CD/ 2373 CD 2374 2375/(A|B)*CD/ 2376 CD 2377 2378/(?<!bar)foo/ 2379 foo 2380 catfood 2381 arfootle 2382 rfoosh 2383 *** Failers 2384 barfoo 2385 towbarfoo 2386 2387/\w{3}(?<!bar)foo/ 2388 catfood 2389 *** Failers 2390 foo 2391 barfoo 2392 towbarfoo 2393 2394/(?<=(foo)a)bar/ 2395 fooabar 2396 *** Failers 2397 bar 2398 foobbar 2399 2400/\Aabc\z/m 2401 abc 2402 *** Failers 2403 abc\n 2404 qqq\nabc 2405 abc\nzzz 2406 qqq\nabc\nzzz 2407 2408"(?>.*/)foo" 2409 /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/ 2410 2411"(?>.*/)foo" 2412 /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo 2413 2414/(?>(\.\d\d[1-9]?))\d+/ 2415 1.230003938 2416 1.875000282 2417 *** Failers 2418 1.235 2419 2420/^((?>\w+)|(?>\s+))*$/ 2421 now is the time for all good men to come to the aid of the party 2422 *** Failers 2423 this is not a line with only words and spaces! 2424 2425/(\d+)(\w)/ 2426 12345a 2427 12345+ 2428 2429/((?>\d+))(\w)/ 2430 12345a 2431 *** Failers 2432 12345+ 2433 2434/(?>a+)b/ 2435 aaab 2436 2437/((?>a+)b)/ 2438 aaab 2439 2440/(?>(a+))b/ 2441 aaab 2442 2443/(?>b)+/ 2444 aaabbbccc 2445 2446/(?>a+|b+|c+)*c/ 2447 aaabbbbccccd 2448 2449/(a+|b+|c+)*c/ 2450 aaabbbbccccd 2451 2452/((?>[^()]+)|\([^()]*\))+/ 2453 ((abc(ade)ufh()()x 2454 2455/\(((?>[^()]+)|\([^()]+\))+\)/ 2456 (abc) 2457 (abc(def)xyz) 2458 *** Failers 2459 ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 2460 2461/a(?-i)b/i 2462 ab 2463 Ab 2464 *** Failers 2465 aB 2466 AB 2467 2468/(a (?x)b c)d e/ 2469 a bcd e 2470 *** Failers 2471 a b cd e 2472 abcd e 2473 a bcde 2474 2475/(a b(?x)c d (?-x)e f)/ 2476 a bcde f 2477 *** Failers 2478 abcdef 2479 2480/(a(?i)b)c/ 2481 abc 2482 aBc 2483 *** Failers 2484 abC 2485 aBC 2486 Abc 2487 ABc 2488 ABC 2489 AbC 2490 2491/a(?i:b)c/ 2492 abc 2493 aBc 2494 *** Failers 2495 ABC 2496 abC 2497 aBC 2498 2499/a(?i:b)*c/ 2500 aBc 2501 aBBc 2502 *** Failers 2503 aBC 2504 aBBC 2505 2506/a(?=b(?i)c)\w\wd/ 2507 abcd 2508 abCd 2509 *** Failers 2510 aBCd 2511 abcD 2512 2513/(?s-i:more.*than).*million/i 2514 more than million 2515 more than MILLION 2516 more \n than Million 2517 *** Failers 2518 MORE THAN MILLION 2519 more \n than \n million 2520 2521/(?:(?s-i)more.*than).*million/i 2522 more than million 2523 more than MILLION 2524 more \n than Million 2525 *** Failers 2526 MORE THAN MILLION 2527 more \n than \n million 2528 2529/(?>a(?i)b+)+c/ 2530 abc 2531 aBbc 2532 aBBc 2533 *** Failers 2534 Abc 2535 abAb 2536 abbC 2537 2538/(?=a(?i)b)\w\wc/ 2539 abc 2540 aBc 2541 *** Failers 2542 Ab 2543 abC 2544 aBC 2545 2546/(?<=a(?i)b)(\w\w)c/ 2547 abxxc 2548 aBxxc 2549 *** Failers 2550 Abxxc 2551 ABxxc 2552 abxxC 2553 2554/^(?(?=abc)\w{3}:|\d\d)$/ 2555 abc: 2556 12 2557 *** Failers 2558 123 2559 xyz 2560 2561/^(?(?!abc)\d\d|\w{3}:)$/ 2562 abc: 2563 12 2564 *** Failers 2565 123 2566 xyz 2567 2568/(?(?<=foo)bar|cat)/ 2569 foobar 2570 cat 2571 fcat 2572 focat 2573 *** Failers 2574 foocat 2575 2576/(?(?<!foo)cat|bar)/ 2577 foobar 2578 cat 2579 fcat 2580 focat 2581 *** Failers 2582 foocat 2583 2584/(?>a*)*/ 2585 a 2586 aa 2587 aaaa 2588 2589/(abc|)+/ 2590 abc 2591 abcabc 2592 abcabcabc 2593 xyz 2594 2595/([a]*)*/ 2596 a 2597 aaaaa 2598 2599/([ab]*)*/ 2600 a 2601 b 2602 ababab 2603 aaaabcde 2604 bbbb 2605 2606/([^a]*)*/ 2607 b 2608 bbbb 2609 aaa 2610 2611/([^ab]*)*/ 2612 cccc 2613 abab 2614 2615/([a]*?)*/ 2616 a 2617 aaaa 2618 2619/([ab]*?)*/ 2620 a 2621 b 2622 abab 2623 baba 2624 2625/([^a]*?)*/ 2626 b 2627 bbbb 2628 aaa 2629 2630/([^ab]*?)*/ 2631 c 2632 cccc 2633 baba 2634 2635/(?>a*)*/ 2636 a 2637 aaabcde 2638 2639/((?>a*))*/ 2640 aaaaa 2641 aabbaa 2642 2643/((?>a*?))*/ 2644 aaaaa 2645 aabbaa 2646 2647/(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /x 2648 12-sep-98 2649 12-09-98 2650 *** Failers 2651 sep-12-98 2652 2653/(?i:saturday|sunday)/ 2654 saturday 2655 sunday 2656 Saturday 2657 Sunday 2658 SATURDAY 2659 SUNDAY 2660 SunDay 2661 2662/(a(?i)bc|BB)x/ 2663 abcx 2664 aBCx 2665 bbx 2666 BBx 2667 *** Failers 2668 abcX 2669 aBCX 2670 bbX 2671 BBX 2672 2673/^([ab](?i)[cd]|[ef])/ 2674 ac 2675 aC 2676 bD 2677 elephant 2678 Europe 2679 frog 2680 France 2681 *** Failers 2682 Africa 2683 2684/^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/ 2685 ab 2686 aBd 2687 xy 2688 xY 2689 zebra 2690 Zambesi 2691 *** Failers 2692 aCD 2693 XY 2694 2695/(?<=foo\n)^bar/m 2696 foo\nbar 2697 *** Failers 2698 bar 2699 baz\nbar 2700 2701/(?<=(?<!foo)bar)baz/ 2702 barbaz 2703 barbarbaz 2704 koobarbaz 2705 *** Failers 2706 baz 2707 foobarbaz 2708 2709/The following tests are taken from the Perl 5.005 test suite; some of them/ 2710/are compatible with 5.004, but I'd rather not have to sort them out./ 2711 2712/abc/ 2713 abc 2714 xabcy 2715 ababc 2716 *** Failers 2717 xbc 2718 axc 2719 abx 2720 2721/ab*c/ 2722 abc 2723 2724/ab*bc/ 2725 abc 2726 abbc 2727 abbbbc 2728 2729/.{1}/ 2730 abbbbc 2731 2732/.{3,4}/ 2733 abbbbc 2734 2735/ab{0,}bc/ 2736 abbbbc 2737 2738/ab+bc/ 2739 abbc 2740 *** Failers 2741 abc 2742 abq 2743 2744/ab+bc/ 2745 abbbbc 2746 2747/ab{1,}bc/ 2748 abbbbc 2749 2750/ab{1,3}bc/ 2751 abbbbc 2752 2753/ab{3,4}bc/ 2754 abbbbc 2755 2756/ab{4,5}bc/ 2757 *** Failers 2758 abq 2759 abbbbc 2760 2761/ab?bc/ 2762 abbc 2763 abc 2764 2765/ab{0,1}bc/ 2766 abc 2767 2768/ab?bc/ 2769 2770/ab?c/ 2771 abc 2772 2773/ab{0,1}c/ 2774 abc 2775 2776/^abc$/ 2777 abc 2778 *** Failers 2779 abbbbc 2780 abcc 2781 2782/^abc/ 2783 abcc 2784 2785/^abc$/ 2786 2787/abc$/ 2788 aabc 2789 *** Failers 2790 aabc 2791 aabcd 2792 2793/^/ 2794 abc 2795 2796/$/ 2797 abc 2798 2799/a.c/ 2800 abc 2801 axc 2802 2803/a.*c/ 2804 axyzc 2805 2806/a[bc]d/ 2807 abd 2808 *** Failers 2809 axyzd 2810 abc 2811 2812/a[b-d]e/ 2813 ace 2814 2815/a[b-d]/ 2816 aac 2817 2818/a[-b]/ 2819 a- 2820 2821/a[b-]/ 2822 a- 2823 2824/a]/ 2825 a] 2826 2827/a[]]b/ 2828 a]b 2829 2830/a[^bc]d/ 2831 aed 2832 *** Failers 2833 abd 2834 abd 2835 2836/a[^-b]c/ 2837 adc 2838 2839/a[^]b]c/ 2840 adc 2841 *** Failers 2842 a-c 2843 a]c 2844 2845/\ba\b/ 2846 a- 2847 -a 2848 -a- 2849 2850/\by\b/ 2851 *** Failers 2852 xy 2853 yz 2854 xyz 2855 2856/\Ba\B/ 2857 *** Failers 2858 a- 2859 -a 2860 -a- 2861 2862/\By\b/ 2863 xy 2864 2865/\by\B/ 2866 yz 2867 2868/\By\B/ 2869 xyz 2870 2871/\w/ 2872 a 2873 2874/\W/ 2875 - 2876 *** Failers 2877 - 2878 a 2879 2880/a\sb/ 2881 a b 2882 2883/a\Sb/ 2884 a-b 2885 *** Failers 2886 a-b 2887 a b 2888 2889/\d/ 2890 1 2891 2892/\D/ 2893 - 2894 *** Failers 2895 - 2896 1 2897 2898/[\w]/ 2899 a 2900 2901/[\W]/ 2902 - 2903 *** Failers 2904 - 2905 a 2906 2907/a[\s]b/ 2908 a b 2909 2910/a[\S]b/ 2911 a-b 2912 *** Failers 2913 a-b 2914 a b 2915 2916/[\d]/ 2917 1 2918 2919/[\D]/ 2920 - 2921 *** Failers 2922 - 2923 1 2924 2925/ab|cd/ 2926 abc 2927 abcd 2928 2929/()ef/ 2930 def 2931 2932/$b/ 2933 2934/a\(b/ 2935 a(b 2936 2937/a\(*b/ 2938 ab 2939 a((b 2940 2941/a\\b/ 2942 a\b 2943 2944/((a))/ 2945 abc 2946 2947/(a)b(c)/ 2948 abc 2949 2950/a+b+c/ 2951 aabbabc 2952 2953/a{1,}b{1,}c/ 2954 aabbabc 2955 2956/a.+?c/ 2957 abcabc 2958 2959/(a+|b)*/ 2960 ab 2961 2962/(a+|b){0,}/ 2963 ab 2964 2965/(a+|b)+/ 2966 ab 2967 2968/(a+|b){1,}/ 2969 ab 2970 2971/(a+|b)?/ 2972 ab 2973 2974/(a+|b){0,1}/ 2975 ab 2976 2977/[^ab]*/ 2978 cde 2979 2980/abc/ 2981 *** Failers 2982 b 2983 2984 2985/a*/ 2986 2987 2988/([abc])*d/ 2989 abbbcd 2990 2991/([abc])*bcd/ 2992 abcd 2993 2994/a|b|c|d|e/ 2995 e 2996 2997/(a|b|c|d|e)f/ 2998 ef 2999 3000/abcd*efg/ 3001 abcdefg 3002 3003/ab*/ 3004 xabyabbbz 3005 xayabbbz 3006 3007/(ab|cd)e/ 3008 abcde 3009 3010/[abhgefdc]ij/ 3011 hij 3012 3013/^(ab|cd)e/ 3014 3015/(abc|)ef/ 3016 abcdef 3017 3018/(a|b)c*d/ 3019 abcd 3020 3021/(ab|ab*)bc/ 3022 abc 3023 3024/a([bc]*)c*/ 3025 abc 3026 3027/a([bc]*)(c*d)/ 3028 abcd 3029 3030/a([bc]+)(c*d)/ 3031 abcd 3032 3033/a([bc]*)(c+d)/ 3034 abcd 3035 3036/a[bcd]*dcdcde/ 3037 adcdcde 3038 3039/a[bcd]+dcdcde/ 3040 *** Failers 3041 abcde 3042 adcdcde 3043 3044/(ab|a)b*c/ 3045 abc 3046 3047/((a)(b)c)(d)/ 3048 abcd 3049 3050/[a-zA-Z_][a-zA-Z0-9_]*/ 3051 alpha 3052 3053/^a(bc+|b[eh])g|.h$/ 3054 abh 3055 3056/(bc+d$|ef*g.|h?i(j|k))/ 3057 effgz 3058 ij 3059 reffgz 3060 *** Failers 3061 effg 3062 bcdd 3063 3064/((((((((((a))))))))))/ 3065 a 3066 3067/(((((((((a)))))))))/ 3068 a 3069 3070/multiple words of text/ 3071 *** Failers 3072 aa 3073 uh-uh 3074 3075/multiple words/ 3076 multiple words, yeah 3077 3078/(.*)c(.*)/ 3079 abcde 3080 3081/\((.*), (.*)\)/ 3082 (a, b) 3083 3084/[k]/ 3085 3086/abcd/ 3087 abcd 3088 3089/a(bc)d/ 3090 abcd 3091 3092/a[-]?c/ 3093 ac 3094 3095/abc/i 3096 ABC 3097 XABCY 3098 ABABC 3099 *** Failers 3100 aaxabxbaxbbx 3101 XBC 3102 AXC 3103 ABX 3104 3105/ab*c/i 3106 ABC 3107 3108/ab*bc/i 3109 ABC 3110 ABBC 3111 3112/ab*?bc/i 3113 ABBBBC 3114 3115/ab{0,}?bc/i 3116 ABBBBC 3117 3118/ab+?bc/i 3119 ABBC 3120 3121/ab+bc/i 3122 *** Failers 3123 ABC 3124 ABQ 3125 3126/ab{1,}bc/i 3127 3128/ab+bc/i 3129 ABBBBC 3130 3131/ab{1,}?bc/i 3132 ABBBBC 3133 3134/ab{1,3}?bc/i 3135 ABBBBC 3136 3137/ab{3,4}?bc/i 3138 ABBBBC 3139 3140/ab{4,5}?bc/i 3141 *** Failers 3142 ABQ 3143 ABBBBC 3144 3145/ab??bc/i 3146 ABBC 3147 ABC 3148 3149/ab{0,1}?bc/i 3150 ABC 3151 3152/ab??bc/i 3153 3154/ab??c/i 3155 ABC 3156 3157/ab{0,1}?c/i 3158 ABC 3159 3160/^abc$/i 3161 ABC 3162 *** Failers 3163 ABBBBC 3164 ABCC 3165 3166/^abc/i 3167 ABCC 3168 3169/^abc$/i 3170 3171/abc$/i 3172 AABC 3173 3174/^/i 3175 ABC 3176 3177/$/i 3178 ABC 3179 3180/a.c/i 3181 ABC 3182 AXC 3183 3184/a.*?c/i 3185 AXYZC 3186 3187/a.*c/i 3188 *** Failers 3189 AABC 3190 AXYZD 3191 3192/a[bc]d/i 3193 ABD 3194 3195/a[b-d]e/i 3196 ACE 3197 *** Failers 3198 ABC 3199 ABD 3200 3201/a[b-d]/i 3202 AAC 3203 3204/a[-b]/i 3205 A- 3206 3207/a[b-]/i 3208 A- 3209 3210/a]/i 3211 A] 3212 3213/a[]]b/i 3214 A]B 3215 3216/a[^bc]d/i 3217 AED 3218 3219/a[^-b]c/i 3220 ADC 3221 *** Failers 3222 ABD 3223 A-C 3224 3225/a[^]b]c/i 3226 ADC 3227 3228/ab|cd/i 3229 ABC 3230 ABCD 3231 3232/()ef/i 3233 DEF 3234 3235/$b/i 3236 *** Failers 3237 A]C 3238 B 3239 3240/a\(b/i 3241 A(B 3242 3243/a\(*b/i 3244 AB 3245 A((B 3246 3247/a\\b/i 3248 A\B 3249 3250/((a))/i 3251 ABC 3252 3253/(a)b(c)/i 3254 ABC 3255 3256/a+b+c/i 3257 AABBABC 3258 3259/a{1,}b{1,}c/i 3260 AABBABC 3261 3262/a.+?c/i 3263 ABCABC 3264 3265/a.*?c/i 3266 ABCABC 3267 3268/a.{0,5}?c/i 3269 ABCABC 3270 3271/(a+|b)*/i 3272 AB 3273 3274/(a+|b){0,}/i 3275 AB 3276 3277/(a+|b)+/i 3278 AB 3279 3280/(a+|b){1,}/i 3281 AB 3282 3283/(a+|b)?/i 3284 AB 3285 3286/(a+|b){0,1}/i 3287 AB 3288 3289/(a+|b){0,1}?/i 3290 AB 3291 3292/[^ab]*/i 3293 CDE 3294 3295/abc/i 3296 3297/a*/i 3298 3299 3300/([abc])*d/i 3301 ABBBCD 3302 3303/([abc])*bcd/i 3304 ABCD 3305 3306/a|b|c|d|e/i 3307 E 3308 3309/(a|b|c|d|e)f/i 3310 EF 3311 3312/abcd*efg/i 3313 ABCDEFG 3314 3315/ab*/i 3316 XABYABBBZ 3317 XAYABBBZ 3318 3319/(ab|cd)e/i 3320 ABCDE 3321 3322/[abhgefdc]ij/i 3323 HIJ 3324 3325/^(ab|cd)e/i 3326 ABCDE 3327 3328/(abc|)ef/i 3329 ABCDEF 3330 3331/(a|b)c*d/i 3332 ABCD 3333 3334/(ab|ab*)bc/i 3335 ABC 3336 3337/a([bc]*)c*/i 3338 ABC 3339 3340/a([bc]*)(c*d)/i 3341 ABCD 3342 3343/a([bc]+)(c*d)/i 3344 ABCD 3345 3346/a([bc]*)(c+d)/i 3347 ABCD 3348 3349/a[bcd]*dcdcde/i 3350 ADCDCDE 3351 3352/a[bcd]+dcdcde/i 3353 3354/(ab|a)b*c/i 3355 ABC 3356 3357/((a)(b)c)(d)/i 3358 ABCD 3359 3360/[a-zA-Z_][a-zA-Z0-9_]*/i 3361 ALPHA 3362 3363/^a(bc+|b[eh])g|.h$/i 3364 ABH 3365 3366/(bc+d$|ef*g.|h?i(j|k))/i 3367 EFFGZ 3368 IJ 3369 REFFGZ 3370 *** Failers 3371 ADCDCDE 3372 EFFG 3373 BCDD 3374 3375/((((((((((a))))))))))/i 3376 A 3377 3378/(((((((((a)))))))))/i 3379 A 3380 3381/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i 3382 A 3383 3384/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i 3385 C 3386 3387/multiple words of text/i 3388 *** Failers 3389 AA 3390 UH-UH 3391 3392/multiple words/i 3393 MULTIPLE WORDS, YEAH 3394 3395/(.*)c(.*)/i 3396 ABCDE 3397 3398/\((.*), (.*)\)/i 3399 (A, B) 3400 3401/[k]/i 3402 3403/abcd/i 3404 ABCD 3405 3406/a(bc)d/i 3407 ABCD 3408 3409/a[-]?c/i 3410 AC 3411 3412/a(?!b)./ 3413 abad 3414 3415/a(?=d)./ 3416 abad 3417 3418/a(?=c|d)./ 3419 abad 3420 3421/a(?:b|c|d)(.)/ 3422 ace 3423 3424/a(?:b|c|d)*(.)/ 3425 ace 3426 3427/a(?:b|c|d)+?(.)/ 3428 ace 3429 acdbcdbe 3430 3431/a(?:b|c|d)+(.)/ 3432 acdbcdbe 3433 3434/a(?:b|c|d){2}(.)/ 3435 acdbcdbe 3436 3437/a(?:b|c|d){4,5}(.)/ 3438 acdbcdbe 3439 3440/a(?:b|c|d){4,5}?(.)/ 3441 acdbcdbe 3442 3443/((foo)|(bar))*/ 3444 foobar 3445 3446/a(?:b|c|d){6,7}(.)/ 3447 acdbcdbe 3448 3449/a(?:b|c|d){6,7}?(.)/ 3450 acdbcdbe 3451 3452/a(?:b|c|d){5,6}(.)/ 3453 acdbcdbe 3454 3455/a(?:b|c|d){5,6}?(.)/ 3456 acdbcdbe 3457 3458/a(?:b|c|d){5,7}(.)/ 3459 acdbcdbe 3460 3461/a(?:b|c|d){5,7}?(.)/ 3462 acdbcdbe 3463 3464/a(?:b|(c|e){1,2}?|d)+?(.)/ 3465 ace 3466 3467/^(.+)?B/ 3468 AB 3469 3470/^([^a-z])|(\^)$/ 3471 . 3472 3473/^[<>]&/ 3474 <&OUT 3475 3476/(?:(f)(o)(o)|(b)(a)(r))*/ 3477 foobar 3478 3479/(?<=a)b/ 3480 ab 3481 *** Failers 3482 cb 3483 b 3484 3485/(?<!c)b/ 3486 ab 3487 b 3488 b 3489 3490/(?:..)*a/ 3491 aba 3492 3493/(?:..)*?a/ 3494 aba 3495 3496/^(){3,5}/ 3497 abc 3498 3499/^(a+)*ax/ 3500 aax 3501 3502/^((a|b)+)*ax/ 3503 aax 3504 3505/^((a|bc)+)*ax/ 3506 aax 3507 3508/(a|x)*ab/ 3509 cab 3510 3511/(a)*ab/ 3512 cab 3513 3514/(?:(?i)a)b/ 3515 ab 3516 3517/((?i)a)b/ 3518 ab 3519 3520/(?:(?i)a)b/ 3521 Ab 3522 3523/((?i)a)b/ 3524 Ab 3525 3526/(?:(?i)a)b/ 3527 *** Failers 3528 cb 3529 aB 3530 3531/((?i)a)b/ 3532 3533/(?i:a)b/ 3534 ab 3535 3536/((?i:a))b/ 3537 ab 3538 3539/(?i:a)b/ 3540 Ab 3541 3542/((?i:a))b/ 3543 Ab 3544 3545/(?i:a)b/ 3546 *** Failers 3547 aB 3548 aB 3549 3550/((?i:a))b/ 3551 3552/(?:(?-i)a)b/i 3553 ab 3554 3555/((?-i)a)b/i 3556 ab 3557 3558/(?:(?-i)a)b/i 3559 aB 3560 3561/((?-i)a)b/i 3562 aB 3563 3564/(?:(?-i)a)b/i 3565 *** Failers 3566 aB 3567 Ab 3568 3569/((?-i)a)b/i 3570 3571/(?:(?-i)a)b/i 3572 aB 3573 3574/((?-i)a)b/i 3575 aB 3576 3577/(?:(?-i)a)b/i 3578 *** Failers 3579 Ab 3580 AB 3581 3582/((?-i)a)b/i 3583 3584/(?-i:a)b/i 3585 ab 3586 3587/((?-i:a))b/i 3588 ab 3589 3590/(?-i:a)b/i 3591 aB 3592 3593/((?-i:a))b/i 3594 aB 3595 3596/(?-i:a)b/i 3597 *** Failers 3598 AB 3599 Ab 3600 3601/((?-i:a))b/i 3602 3603/(?-i:a)b/i 3604 aB 3605 3606/((?-i:a))b/i 3607 aB 3608 3609/(?-i:a)b/i 3610 *** Failers 3611 Ab 3612 AB 3613 3614/((?-i:a))b/i 3615 3616/((?-i:a.))b/i 3617 *** Failers 3618 AB 3619 a\nB 3620 3621/((?s-i:a.))b/i 3622 a\nB 3623 3624/(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/ 3625 cabbbb 3626 3627/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/ 3628 caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 3629 3630/foo\w*\d{4}baz/ 3631 foobar1234baz 3632 3633/x(~~)*(?:(?:F)?)?/ 3634 x~~ 3635 3636/^a(?#xxx){3}c/ 3637 aaac 3638 3639/^a (?#xxx) (?#yyy) {3}c/x 3640 aaac 3641 3642/(?<![cd])b/ 3643 *** Failers 3644 B\nB 3645 dbcb 3646 3647/(?<![cd])[ab]/ 3648 dbaacb 3649 3650/(?<!(c|d))b/ 3651 3652/(?<!(c|d))[ab]/ 3653 dbaacb 3654 3655/(?<!cd)[ab]/ 3656 cdaccb 3657 3658/^(?:a?b?)*$/ 3659 *** Failers 3660 dbcb 3661 a-- 3662 3663/((?s)^a(.))((?m)^b$)/ 3664 a\nb\nc\n 3665 3666/((?m)^b$)/ 3667 a\nb\nc\n 3668 3669/(?m)^b/ 3670 a\nb\n 3671 3672/(?m)^(b)/ 3673 a\nb\n 3674 3675/((?m)^b)/ 3676 a\nb\n 3677 3678/\n((?m)^b)/ 3679 a\nb\n 3680 3681/((?s).)c(?!.)/ 3682 a\nb\nc\n 3683 a\nb\nc\n 3684 3685/((?s)b.)c(?!.)/ 3686 a\nb\nc\n 3687 a\nb\nc\n 3688 3689/^b/ 3690 3691/()^b/ 3692 *** Failers 3693 a\nb\nc\n 3694 a\nb\nc\n 3695 3696/((?m)^b)/ 3697 a\nb\nc\n 3698 3699/(?(?!a)a|b)/ 3700 3701/(?(?!a)b|a)/ 3702 a 3703 3704/(?(?=a)b|a)/ 3705 *** Failers 3706 a 3707 a 3708 3709/(?(?=a)a|b)/ 3710 a 3711 3712/(\w+:)+/ 3713 one: 3714 3715/$(?<=^(a))/ 3716 a 3717 3718/([\w:]+::)?(\w+)$/ 3719 abcd 3720 xy:z:::abcd 3721 3722/^[^bcd]*(c+)/ 3723 aexycd 3724 3725/(a*)b+/ 3726 caab 3727 3728/([\w:]+::)?(\w+)$/ 3729 abcd 3730 xy:z:::abcd 3731 *** Failers 3732 abcd: 3733 abcd: 3734 3735/^[^bcd]*(c+)/ 3736 aexycd 3737 3738/(>a+)ab/ 3739 3740/(?>a+)b/ 3741 aaab 3742 3743/([[:]+)/ 3744 a:[b]: 3745 3746/([[=]+)/ 3747 a=[b]= 3748 3749/([[.]+)/ 3750 a.[b]. 3751 3752/((?>a+)b)/ 3753 aaab 3754 3755/(?>(a+))b/ 3756 aaab 3757 3758/((?>[^()]+)|\([^()]*\))+/ 3759 ((abc(ade)ufh()()x 3760 3761/a\Z/ 3762 *** Failers 3763 aaab 3764 a\nb\n 3765 3766/b\Z/ 3767 a\nb\n 3768 3769/b\z/ 3770 3771/b\Z/ 3772 a\nb 3773 3774/b\z/ 3775 a\nb 3776 *** Failers 3777 3778/(?>.*)(?<=(abcd|wxyz))/ 3779 alphabetabcd 3780 endingwxyz 3781 *** Failers 3782 a rather long string that doesn't end with one of them 3783 3784/word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/ 3785 word cat dog elephant mussel cow horse canary baboon snake shark otherword 3786 word cat dog elephant mussel cow horse canary baboon snake shark 3787 3788/word (?>[a-zA-Z0-9]+ ){0,30}otherword/ 3789 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 3790 3791/(?<=\d{3}(?!999))foo/ 3792 999foo 3793 123999foo 3794 *** Failers 3795 123abcfoo 3796 3797/(?<=(?!...999)\d{3})foo/ 3798 999foo 3799 123999foo 3800 *** Failers 3801 123abcfoo 3802 3803/(?<=\d{3}(?!999)...)foo/ 3804 123abcfoo 3805 123456foo 3806 *** Failers 3807 123999foo 3808 3809/(?<=\d{3}...)(?<!999)foo/ 3810 123abcfoo 3811 123456foo 3812 *** Failers 3813 123999foo 3814 3815/((Z)+|A)*/ 3816 ZABCDEFG 3817 3818/(Z()|A)*/ 3819 ZABCDEFG 3820 3821/(Z(())|A)*/ 3822 ZABCDEFG 3823 3824/((?>Z)+|A)*/ 3825 ZABCDEFG 3826 3827/((?>)+|A)*/ 3828 ZABCDEFG 3829 3830/a*/g 3831 abbab 3832 3833/^[\d-a]/ 3834 abcde 3835 -things 3836 0digit 3837 *** Failers 3838 bcdef 3839 3840/[[:space:]]+/ 3841 > \x09\x0a\x0c\x0d\x0b< 3842 3843/[[:blank:]]+/ 3844 > \x09\x0a\x0c\x0d\x0b< 3845 3846/[\s]+/ 3847 > \x09\x0a\x0c\x0d\x0b< 3848 3849/\s+/ 3850 > \x09\x0a\x0c\x0d\x0b< 3851 3852/ab/x 3853 ab 3854 3855/(?!\A)x/m 3856 a\nxb\n 3857 3858/(?!^)x/m 3859 a\nxb\n 3860 3861/abc\Qabc\Eabc/ 3862 abcabcabc 3863 3864/abc\Q(*+|\Eabc/ 3865 abc(*+|abc 3866 3867/ abc\Q abc\Eabc/x 3868 abc abcabc 3869 *** Failers 3870 abcabcabc 3871 3872/abc#comment 3873 \Q#not comment 3874 literal\E/x 3875 abc#not comment\n literal 3876 3877/abc#comment 3878 \Q#not comment 3879 literal/x 3880 abc#not comment\n literal 3881 3882/abc#comment 3883 \Q#not comment 3884 literal\E #more comment 3885 /x 3886 abc#not comment\n literal 3887 3888/abc#comment 3889 \Q#not comment 3890 literal\E #more comment/x 3891 abc#not comment\n literal 3892 3893/\Qabc\$xyz\E/ 3894 abc\\\$xyz 3895 3896/\Qabc\E\$\Qxyz\E/ 3897 abc\$xyz 3898 3899/\Gabc/ 3900 abc 3901 *** Failers 3902 xyzabc 3903 3904/\Gabc./g 3905 abc1abc2xyzabc3 3906 3907/abc./g 3908 abc1abc2xyzabc3 3909 3910/a(?x: b c )d/ 3911 XabcdY 3912 *** Failers 3913 Xa b c d Y 3914 3915/((?x)x y z | a b c)/ 3916 XabcY 3917 AxyzB 3918 3919/(?i)AB(?-i)C/ 3920 XabCY 3921 *** Failers 3922 XabcY 3923 3924/((?i)AB(?-i)C|D)E/ 3925 abCE 3926 DE 3927 *** Failers 3928 abcE 3929 abCe 3930 dE 3931 De 3932 3933/[z\Qa-d]\E]/ 3934 z 3935 a 3936 - 3937 d 3938 ] 3939 *** Failers 3940 b 3941 3942/[\z\C]/ 3943 z 3944 C 3945 3946/\M/ 3947 M 3948 3949/(a+)*b/ 3950 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 3951 3952/(?i)reg(?:ul(?:[a�]|ae)r|ex)/ 3953 REGular 3954 regulaer 3955 Regex 3956 regul�r 3957 3958/����[�-��-�]+/ 3959 ����� 3960 ����� 3961 ����� 3962 ����� 3963 3964/(?<=Z)X./ 3965 \x84XAZXB 3966 3967/^(?(2)a|(1)(2))+$/ 3968 123a 3969 3970/(?<=a|bbbb)c/ 3971 ac 3972 bbbbc 3973 3974/abc/SS>testsavedregex 3975<testsavedregex 3976 abc 3977 *** Failers 3978 bca 3979 3980/abc/FSS>testsavedregex 3981<testsavedregex 3982 abc 3983 *** Failers 3984 bca 3985 3986/(a|b)/S>testsavedregex 3987<testsavedregex 3988 abc 3989 *** Failers 3990 def 3991 3992/(a|b)/SF>testsavedregex 3993<testsavedregex 3994 abc 3995 *** Failers 3996 def 3997 3998/line\nbreak/ 3999 this is a line\nbreak 4000 line one\nthis is a line\nbreak in the second line 4001 4002/line\nbreak/f 4003 this is a line\nbreak 4004 ** Failers 4005 line one\nthis is a line\nbreak in the second line 4006 4007/line\nbreak/mf 4008 this is a line\nbreak 4009 ** Failers 4010 line one\nthis is a line\nbreak in the second line 4011 4012/1234/ 4013 123\P 4014 a4\P\R 4015 4016/1234/ 4017 123\P 4018 4\P\R 4019 4020/^/mg 4021 a\nb\nc\n 4022 \ 4023 4024/(?<=C\n)^/mg 4025 A\nC\nC\n 4026 4027/(?s)A?B/ 4028 AB 4029 aB 4030 4031/(?s)A*B/ 4032 AB 4033 aB 4034 4035/(?m)A?B/ 4036 AB 4037 aB 4038 4039/(?m)A*B/ 4040 AB 4041 aB 4042 4043/Content-Type\x3A[^\r\n]{6,}/ 4044 Content-Type:xxxxxyyy 4045 4046/Content-Type\x3A[^\r\n]{6,}z/ 4047 Content-Type:xxxxxyyyz 4048 4049/Content-Type\x3A[^a]{6,}/ 4050 Content-Type:xxxyyy 4051 4052/Content-Type\x3A[^a]{6,}z/ 4053 Content-Type:xxxyyyz 4054 4055/^abc/m 4056 xyz\nabc 4057 xyz\nabc\<lf> 4058 xyz\r\nabc\<lf> 4059 xyz\rabc\<cr> 4060 xyz\r\nabc\<crlf> 4061 ** Failers 4062 xyz\nabc\<cr> 4063 xyz\r\nabc\<cr> 4064 xyz\nabc\<crlf> 4065 xyz\rabc\<crlf> 4066 xyz\rabc\<lf> 4067 4068/abc$/m<lf> 4069 xyzabc 4070 xyzabc\n 4071 xyzabc\npqr 4072 xyzabc\r\<cr> 4073 xyzabc\rpqr\<cr> 4074 xyzabc\r\n\<crlf> 4075 xyzabc\r\npqr\<crlf> 4076 ** Failers 4077 xyzabc\r 4078 xyzabc\rpqr 4079 xyzabc\r\n 4080 xyzabc\r\npqr 4081 4082/^abc/m<cr> 4083 xyz\rabcdef 4084 xyz\nabcdef\<lf> 4085 ** Failers 4086 xyz\nabcdef 4087 4088/^abc/m<lf> 4089 xyz\nabcdef 4090 xyz\rabcdef\<cr> 4091 ** Failers 4092 xyz\rabcdef 4093 4094/^abc/m<crlf> 4095 xyz\r\nabcdef 4096 xyz\rabcdef\<cr> 4097 ** Failers 4098 xyz\rabcdef 4099 4100/.*/<lf> 4101 abc\ndef 4102 abc\rdef 4103 abc\r\ndef 4104 \<cr>abc\ndef 4105 \<cr>abc\rdef 4106 \<cr>abc\r\ndef 4107 \<crlf>abc\ndef 4108 \<crlf>abc\rdef 4109 \<crlf>abc\r\ndef 4110 4111/\w+(.)(.)?def/s 4112 abc\ndef 4113 abc\rdef 4114 abc\r\ndef 4115 4116/^\w+=.*(\\\n.*)*/ 4117 abc=xyz\\\npqr 4118 4119/^(a()*)*/ 4120 aaaa 4121 4122/^(?:a(?:(?:))*)*/ 4123 aaaa 4124 4125/^(a()+)+/ 4126 aaaa 4127 4128/^(?:a(?:(?:))+)+/ 4129 aaaa 4130 4131/(a|)*\d/ 4132 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 4133 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 4134 4135/(?>a|)*\d/ 4136 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 4137 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 4138 4139/(?:a|)*\d/ 4140 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 4141 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 4142 4143/^a.b/<lf> 4144 a\rb 4145 a\nb\<cr> 4146 ** Failers 4147 a\nb 4148 a\nb\<any> 4149 a\rb\<cr> 4150 a\rb\<any> 4151 4152/^abc./mgx<any> 4153 abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK 4154 4155/abc.$/mgx<any> 4156 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9 4157 4158/^a\Rb/<bsr_unicode> 4159 a\nb 4160 a\rb 4161 a\r\nb 4162 a\x0bb 4163 a\x0cb 4164 a\x85b 4165 ** Failers 4166 a\n\rb 4167 4168/^a\R*b/<bsr_unicode> 4169 ab 4170 a\nb 4171 a\rb 4172 a\r\nb 4173 a\x0bb 4174 a\x0cb 4175 a\x85b 4176 a\n\rb 4177 a\n\r\x85\x0cb 4178 4179/^a\R+b/<bsr_unicode> 4180 a\nb 4181 a\rb 4182 a\r\nb 4183 a\x0bb 4184 a\x0cb 4185 a\x85b 4186 a\n\rb 4187 a\n\r\x85\x0cb 4188 ** Failers 4189 ab 4190 4191/^a\R{1,3}b/<bsr_unicode> 4192 a\nb 4193 a\n\rb 4194 a\n\r\x85b 4195 a\r\n\r\nb 4196 a\r\n\r\n\r\nb 4197 a\n\r\n\rb 4198 a\n\n\r\nb 4199 ** Failers 4200 a\n\n\n\rb 4201 a\r 4202 4203/^a[\R]b/<bsr_unicode> 4204 aRb 4205 ** Failers 4206 a\nb 4207 4208/.+foo/ 4209 afoo 4210 ** Failers 4211 \r\nfoo 4212 \nfoo 4213 4214/.+foo/<crlf> 4215 afoo 4216 \nfoo 4217 ** Failers 4218 \r\nfoo 4219 4220/.+foo/<any> 4221 afoo 4222 ** Failers 4223 \nfoo 4224 \r\nfoo 4225 4226/.+foo/s 4227 afoo 4228 \r\nfoo 4229 \nfoo 4230 4231/^$/mg<any> 4232 abc\r\rxyz 4233 abc\n\rxyz 4234 ** Failers 4235 abc\r\nxyz 4236 4237/^X/m 4238 XABC 4239 ** Failers 4240 XABC\B 4241 4242/(?m)^$/<any>g+ 4243 abc\r\n\r\n 4244 4245/(?m)^$|^\r\n/<any>g+ 4246 abc\r\n\r\n 4247 4248/(?m)$/<any>g+ 4249 abc\r\n\r\n 4250 4251/(?|(abc)|(xyz))/ 4252 >abc< 4253 >xyz< 4254 4255/(x)(?|(abc)|(xyz))(x)/ 4256 xabcx 4257 xxyzx 4258 4259/(x)(?|(abc)(pqr)|(xyz))(x)/ 4260 xabcpqrx 4261 xxyzx 4262 4263/(?|(abc)|(xyz))(?1)/ 4264 abcabc 4265 xyzabc 4266 ** Failers 4267 xyzxyz 4268 4269/\H\h\V\v/ 4270 X X\x0a 4271 X\x09X\x0b 4272 ** Failers 4273 \xa0 X\x0a 4274 4275/\H*\h+\V?\v{3,4}/ 4276 \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a 4277 \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a 4278 \x09\x20\xa0\x0a\x0b\x0c 4279 ** Failers 4280 \x09\x20\xa0\x0a\x0b 4281 4282/\H{3,4}/ 4283 XY ABCDE 4284 XY PQR ST 4285 4286/.\h{3,4}./ 4287 XY AB PQRS 4288 4289/\h*X\h?\H+Y\H?Z/ 4290 >XNNNYZ 4291 > X NYQZ 4292 ** Failers 4293 >XYZ 4294 > X NY Z 4295 4296/\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/ 4297 >XY\x0aZ\x0aA\x0bNN\x0c 4298 >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c 4299 4300/.+A/<crlf> 4301 \r\nA 4302 4303/\nA/<crlf> 4304 \r\nA 4305 4306/[\r\n]A/<crlf> 4307 \r\nA 4308 4309/(\r|\n)A/<crlf> 4310 \r\nA 4311 4312/a\Rb/I<bsr_anycrlf> 4313 a\rb 4314 a\nb 4315 a\r\nb 4316 ** Failers 4317 a\x85b 4318 a\x0bb 4319 4320/a\Rb/I<bsr_unicode> 4321 a\rb 4322 a\nb 4323 a\r\nb 4324 a\x85b 4325 a\x0bb 4326 ** Failers 4327 a\x85b\<bsr_anycrlf> 4328 a\x0bb\<bsr_anycrlf> 4329 4330/a\R?b/I<bsr_anycrlf> 4331 a\rb 4332 a\nb 4333 a\r\nb 4334 ** Failers 4335 a\x85b 4336 a\x0bb 4337 4338/a\R?b/I<bsr_unicode> 4339 a\rb 4340 a\nb 4341 a\r\nb 4342 a\x85b 4343 a\x0bb 4344 ** Failers 4345 a\x85b\<bsr_anycrlf> 4346 a\x0bb\<bsr_anycrlf> 4347 4348/a\R{2,4}b/I<bsr_anycrlf> 4349 a\r\n\nb 4350 a\n\r\rb 4351 a\r\n\r\n\r\n\r\nb 4352 ** Failers 4353 a\x85\85b 4354 a\x0b\0bb 4355 4356/a\R{2,4}b/I<bsr_unicode> 4357 a\r\rb 4358 a\n\n\nb 4359 a\r\n\n\r\rb 4360 a\x85\85b 4361 a\x0b\0bb 4362 ** Failers 4363 a\r\r\r\r\rb 4364 a\x85\85b\<bsr_anycrlf> 4365 a\x0b\0bb\<bsr_anycrlf> 4366 4367/a(?!)|\wbc/ 4368 abc 4369 4370/a[]b/<JS> 4371 ** Failers 4372 ab 4373 4374/a[]+b/<JS> 4375 ** Failers 4376 ab 4377 4378/a[]*+b/<JS> 4379 ** Failers 4380 ab 4381 4382/a[^]b/<JS> 4383 aXb 4384 a\nb 4385 ** Failers 4386 ab 4387 4388/a[^]+b/<JS> 4389 aXb 4390 a\nX\nXb 4391 ** Failers 4392 ab 4393 4394/X$/E 4395 X 4396 ** Failers 4397 X\n 4398 4399/X$/ 4400 X 4401 X\n 4402 4403/xyz/C 4404 xyz 4405 abcxyz 4406 abcxyz\Y 4407 ** Failers 4408 abc 4409 abc\Y 4410 abcxypqr 4411 abcxypqr\Y 4412 4413/(*NO_START_OPT)xyz/C 4414 abcxyz 4415 4416/(?C)ab/ 4417 ab 4418 \C-ab 4419 4420/ab/C 4421 ab 4422 \C-ab 4423 4424/^"((?(?=[a])[^"])|b)*"$/C 4425 "ab" 4426 \C-"ab" 4427 4428/\d+X|9+Y/ 4429 ++++123999\P 4430 ++++123999Y\P 4431 4432/Z(*F)/ 4433 Z\P 4434 ZA\P 4435 4436/Z(?!)/ 4437 Z\P 4438 ZA\P 4439 4440/dog(sbody)?/ 4441 dogs\P 4442 dogs\P\P 4443 4444/dog(sbody)??/ 4445 dogs\P 4446 dogs\P\P 4447 4448/dog|dogsbody/ 4449 dogs\P 4450 dogs\P\P 4451 4452/dogsbody|dog/ 4453 dogs\P 4454 dogs\P\P 4455 4456/Z(*F)Q|ZXY/ 4457 Z\P 4458 ZA\P 4459 X\P 4460 4461/\bthe cat\b/ 4462 the cat\P 4463 the cat\P\P 4464 4465/dog(sbody)?/ 4466 dogs\D\P 4467 body\D\R 4468 4469/dog(sbody)?/ 4470 dogs\D\P\P 4471 body\D\R 4472 4473/abc/ 4474 abc\P 4475 abc\P\P 4476 4477/abc\K123/ 4478 xyzabc123pqr 4479 4480/(?<=abc)123/ 4481 xyzabc123pqr 4482 xyzabc12\P 4483 xyzabc12\P\P 4484 4485/\babc\b/ 4486 +++abc+++ 4487 +++ab\P 4488 +++ab\P\P 4489 4490/(?=C)/g+ 4491 ABCDECBA 4492 4493/(abc|def|xyz)/I 4494 terhjk;abcdaadsfe 4495 the quick xyz brown fox 4496 \Yterhjk;abcdaadsfe 4497 \Ythe quick xyz brown fox 4498 ** Failers 4499 thejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd 4500 \Ythejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd 4501 4502/(abc|def|xyz)/SI 4503 terhjk;abcdaadsfe 4504 the quick xyz brown fox 4505 \Yterhjk;abcdaadsfe 4506 \Ythe quick xyz brown fox 4507 ** Failers 4508 thejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd 4509 \Ythejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd 4510 4511/abcd*/+ 4512 xxxxabcd\P 4513 xxxxabcd\P\P 4514 dddxxx\R 4515 xxxxabcd\P\P 4516 xxx\R 4517 4518/abcd*/i 4519 xxxxabcd\P 4520 xxxxabcd\P\P 4521 XXXXABCD\P 4522 XXXXABCD\P\P 4523 4524/abc\d*/ 4525 xxxxabc1\P 4526 xxxxabc1\P\P 4527 4528/abc[de]*/ 4529 xxxxabcde\P 4530 xxxxabcde\P\P 4531 4532/(?:(?1)|B)(A(*F)|C)/ 4533 ABCD 4534 CCD 4535 ** Failers 4536 CAD 4537 4538/^(?:(?1)|B)(A(*F)|C)/ 4539 CCD 4540 BCD 4541 ** Failers 4542 ABCD 4543 CAD 4544 BAD 4545 4546/^(?!a(*SKIP)b)/ 4547 ac 4548 4549/^(?=a(*SKIP)b|ac)/ 4550 ** Failers 4551 ac 4552 4553/^(?=a(*THEN)b|ac)/ 4554 ac 4555 4556/^(?=a(*PRUNE)b)/ 4557 ab 4558 ** Failers 4559 ac 4560 4561/^(?(?!a(*SKIP)b))/ 4562 ac 4563 4564/(?<=abc)def/ 4565 abc\P\P 4566 4567/abc$/ 4568 abc 4569 abc\P 4570 abc\P\P 4571 4572/abc$/m 4573 abc 4574 abc\n 4575 abc\P\P 4576 abc\n\P\P 4577 abc\P 4578 abc\n\P 4579 4580/abc\z/ 4581 abc 4582 abc\P 4583 abc\P\P 4584 4585/abc\Z/ 4586 abc 4587 abc\P 4588 abc\P\P 4589 4590/abc\b/ 4591 abc 4592 abc\P 4593 abc\P\P 4594 4595/abc\B/ 4596 abc 4597 abc\P 4598 abc\P\P 4599 4600/.+/ 4601 abc\>0 4602 abc\>1 4603 abc\>2 4604 abc\>3 4605 abc\>4 4606 abc\>-4 4607 4608/^(?:a)++\w/ 4609 aaaab 4610 ** Failers 4611 aaaa 4612 bbb 4613 4614/^(?:aa|(?:a)++\w)/ 4615 aaaab 4616 aaaa 4617 ** Failers 4618 bbb 4619 4620/^(?:a)*+\w/ 4621 aaaab 4622 bbb 4623 ** Failers 4624 aaaa 4625 4626/^(a)++\w/ 4627 aaaab 4628 ** Failers 4629 aaaa 4630 bbb 4631 4632/^(a|)++\w/ 4633 aaaab 4634 ** Failers 4635 aaaa 4636 bbb 4637 4638/(?=abc){3}abc/+ 4639 abcabcabc 4640 ** Failers 4641 xyz 4642 4643/(?=abc)+abc/+ 4644 abcabcabc 4645 ** Failers 4646 xyz 4647 4648/(?=abc)++abc/+ 4649 abcabcabc 4650 ** Failers 4651 xyz 4652 4653/(?=abc){0}xyz/ 4654 xyz 4655 4656/(?=abc){1}xyz/ 4657 ** Failers 4658 xyz 4659 4660/(?=(a))?./ 4661 ab 4662 bc 4663 4664/(?=(a))??./ 4665 ab 4666 bc 4667 4668/^(?=(a)){0}b(?1)/ 4669 backgammon 4670 4671/^(?=(?1))?[az]([abc])d/ 4672 abd 4673 zcdxx 4674 4675/^(?!a){0}\w+/ 4676 aaaaa 4677 4678/(?<=(abc))?xyz/ 4679 abcxyz 4680 pqrxyz 4681 4682/((?2))((?1))/ 4683 abc 4684 4685/(?(R)a+|(?R)b)/ 4686 aaaabcde 4687 4688/(?(R)a+|((?R))b)/ 4689 aaaabcde 4690 4691/((?(R)a+|(?1)b))/ 4692 aaaabcde 4693 4694/((?(R2)a+|(?1)b))/ 4695 aaaabcde 4696 4697/(?(R)a*(?1)|((?R))b)/ 4698 aaaabcde 4699 4700/(a+)/O 4701 \O6aaaa 4702 \O8aaaa 4703 4704/ab\Cde/ 4705 abXde 4706 4707/(?<=ab\Cde)X/ 4708 abZdeX 4709 4710/^\R/ 4711 \r\P 4712 \r\P\P 4713 4714/^\R{2,3}x/ 4715 \r\P 4716 \r\P\P 4717 \r\r\P 4718 \r\r\P\P 4719 \r\r\r\P 4720 \r\r\r\P\P 4721 \r\rx 4722 \r\r\rx 4723 4724/^\R{2,3}?x/ 4725 \r\P 4726 \r\P\P 4727 \r\r\P 4728 \r\r\P\P 4729 \r\r\r\P 4730 \r\r\r\P\P 4731 \r\rx 4732 \r\r\rx 4733 4734/^\R?x/ 4735 \r\P 4736 \r\P\P 4737 x 4738 \rx 4739 4740/^\R+x/ 4741 \r\P 4742 \r\P\P 4743 \r\n\P 4744 \r\n\P\P 4745 \rx 4746 4747/^a$/<CRLF> 4748 a\r\P 4749 a\r\P\P 4750 4751/^a$/m<CRLF> 4752 a\r\P 4753 a\r\P\P 4754 4755/^(a$|a\r)/<CRLF> 4756 a\r\P 4757 a\r\P\P 4758 4759/^(a$|a\r)/m<CRLF> 4760 a\r\P 4761 a\r\P\P 4762 4763/./<CRLF> 4764 \r\P 4765 \r\P\P 4766 4767/.{2,3}/<CRLF> 4768 \r\P 4769 \r\P\P 4770 \r\r\P 4771 \r\r\P\P 4772 \r\r\r\P 4773 \r\r\r\P\P 4774 4775/.{2,3}?/<CRLF> 4776 \r\P 4777 \r\P\P 4778 \r\r\P 4779 \r\r\P\P 4780 \r\r\r\P 4781 \r\r\r\P\P 4782 4783/-- Test simple validity check for restarts --/ 4784 4785/abcdef/ 4786 abc\R 4787 4788/<H((?(?!<H|F>)(.)|(?R))++)*F>/ 4789 text <H more text <H texting more hexA0-"\xA0" hex above 7F-"\xBC" F> text xxxxx <H text F> text F> text2 <H text sample F> more text. 4790 4791/^(?>.{4})abc|^\w\w.xabcd/ 4792 xxxxabcd 4793 xx\xa0xabcd 4794 4795/^(.{4}){2}+abc|^\w\w.x\w\w\w\wabcd/ 4796 xxxxxxxxabcd 4797 xx\xa0xxxxxabcd 4798 4799/abcd/ 4800 abcd\O0 4801 4802/-- These tests show up auto-possessification --/ 4803 4804/[ab]*/ 4805 aaaa 4806 4807/[ab]*?/ 4808 aaaa 4809 4810/[ab]?/ 4811 aaaa 4812 4813/[ab]??/ 4814 aaaa 4815 4816/[ab]+/ 4817 aaaa 4818 4819/[ab]+?/ 4820 aaaa 4821 4822/[ab]{2,3}/ 4823 aaaa 4824 4825/[ab]{2,3}?/ 4826 aaaa 4827 4828/[ab]{2,}/ 4829 aaaa 4830 4831/[ab]{2,}?/ 4832 aaaa 4833 4834'\A(?:[^\"]++|\"(?:[^\"]*+|\"\")*+\")++' 4835 NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED 4836 4837'\A(?:[^\"]++|\"(?:[^\"]++|\"\")*+\")++' 4838 NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED 4839 4840/(?(?!)a|b)/ 4841 bbb 4842 aaa 4843 4844/()()a+/O= 4845 aaa\D 4846 a\D 4847 4848/(02-)?[0-9]{3}-[0-9]{3}/ 4849 02-123-123 4850 4851/-- End of testinput8 --/ 4852