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