4 What do you know about the quick brown fox?
5 What do you know about THE QUICK BROWN FOX?
10 What do you know about the quick brown fox?
11 What do you know about THE QUICK BROWN FOX?
13 /abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
14 abcd\t\n\r\f\a\e9;\$\\?caxyz
16 /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
17 abxyzpqrrrabbxyyyypqAzz
18 abxyzpqrrrabbxyyyypqAzz
19 aabxyzpqrrrabbxyyyypqAzz
20 aaabxyzpqrrrabbxyyyypqAzz
21 aaaabxyzpqrrrabbxyyyypqAzz
22 abcxyzpqrrrabbxyyyypqAzz
23 aabcxyzpqrrrabbxyyyypqAzz
24 aaabcxyzpqrrrabbxyyyypAzz
25 aaabcxyzpqrrrabbxyyyypqAzz
26 aaabcxyzpqrrrabbxyyyypqqAzz
27 aaabcxyzpqrrrabbxyyyypqqqAzz
28 aaabcxyzpqrrrabbxyyyypqqqqAzz
29 aaabcxyzpqrrrabbxyyyypqqqqqAzz
30 aaabcxyzpqrrrabbxyyyypqqqqqqAzz
31 aaaabcxyzpqrrrabbxyyyypqAzz
32 abxyzzpqrrrabbxyyyypqAzz
33 aabxyzzzpqrrrabbxyyyypqAzz
34 aaabxyzzzzpqrrrabbxyyyypqAzz
35 aaaabxyzzzzpqrrrabbxyyyypqAzz
36 abcxyzzpqrrrabbxyyyypqAzz
37 aabcxyzzzpqrrrabbxyyyypqAzz
38 aaabcxyzzzzpqrrrabbxyyyypqAzz
39 aaaabcxyzzzzpqrrrabbxyyyypqAzz
40 aaaabcxyzzzzpqrrrabbbxyyyypqAzz
41 aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
42 aaabcxyzpqrrrabbxyyyypABzz
43 aaabcxyzpqrrrabbxyyyypABBzz
44 >>>aaabxyzpqrrrabbxyyyypqAzz
45 >aaaabxyzpqrrrabbxyyyypqAzz
46 >>>>abcxyzpqrrrabbxyyyypqAzz
48 abxyzpqrrabbxyyyypqAzz
49 abxyzpqrrrrabbxyyyypqAzz
50 abxyzpqrrrabxyyyypqAzz
51 aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz
52 aaaabcxyzzzzpqrrrabbbxyyypqAzz
53 aaabcxyzpqrrrabbxyyyypqqqqqqqAzz
186 /^.+[0-9][0-9][0-9]$/
194 /^.+?[0-9][0-9][0-9]$/
202 /^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/
203 abc!pqr=apquxz.ixr.zzz.ac.uk
205 !pqr=apquxz.ixr.zzz.ac.uk
206 abc!=apquxz.ixr.zzz.ac.uk
207 abc!pqr=apquxz:ixr.zzz.ac.uk
208 abc!pqr=apquxz.ixr.zzz.ac.ukk
211 Well, we need a colon: somewhere
229 /^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
237 /^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
238 1 IN SOA non-sp1 non-sp2(
239 1 IN SOA non-sp1 non-sp2 (
241 1IN SOA non-sp1 non-sp2(
243 /^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/
253 /^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/
264 /^(?=ab(de))(abd)(e)/
267 /^(?!(ab)de|x)(abd)(f)/
273 /^[\da-f](\.[\da-f])*$/i
289 / ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/x
295 /(?x) ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/
308 /^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
311 /^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
314 /^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
376 /\A(abc|def)=(\1){2,3}\Z/
382 /^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\11*(\3\4)\1(?#)2$/
386 /(cat(a(ract|tonic)|erpillar)) \1()2(3)/
388 catatonic catatonic23
389 caterpillar caterpillar23
392 /^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]/
393 From abcd Mon Sep 01 12:33:02 1997
395 /^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/
396 From abcd Mon Sep 01 12:33:02 1997
397 From abcd Mon Sep 1 12:33:02 1997
399 From abcd Sep 01 12:33:02 1997
406 the quick brown\t fox
409 foobar is foolish see?
411 /(?:(?!foo)...|^.{0,2})bar(.*)/
417 /^(\D*)(?=\d)(?!123)/
422 /^1234(?# test newlines
426 /^1234 #comment in extended re
459 /^[ab]{1,3}?(ab*?|b)/
466 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
467 \) )* # optional leading comment
469 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
470 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
472 " (?: # opening quote...
473 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
475 \\ [^\x80-\xff] # Escaped something (something != CR)
478 (?: (?: [\040\t] | \(
479 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
480 \) )* \. (?: [\040\t] | \(
481 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
483 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
484 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
486 " (?: # opening quote...
487 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
489 \\ [^\x80-\xff] # Escaped something (something != CR)
491 ) )* # further okay, if led by a period
493 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
494 \) )* @ (?: [\040\t] | \(
495 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
497 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
498 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
500 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
502 ) # initial subdomain
505 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
506 \) )* \. # if led by a period...
508 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
510 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
511 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
513 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
520 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
521 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
523 " (?: # opening quote...
524 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
526 \\ [^\x80-\xff] # Escaped something (something != CR)
528 ) # one word, optionally followed by....
530 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or...
532 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
533 \) | # comments, or...
535 " (?: # opening quote...
536 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
538 \\ [^\x80-\xff] # Escaped something (something != CR)
543 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
545 (?: @ (?: [\040\t] | \(
546 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
548 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
549 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
551 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
553 ) # initial subdomain
556 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
557 \) )* \. # if led by a period...
559 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
561 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
562 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
564 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
569 (?: (?: [\040\t] | \(
570 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
571 \) )* , (?: [\040\t] | \(
572 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
573 \) )* @ (?: [\040\t] | \(
574 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
576 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
577 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
579 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
581 ) # initial subdomain
584 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
585 \) )* \. # if led by a period...
587 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
589 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
590 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
592 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
596 )* # further okay, if led by comma
599 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
600 \) )* )? # optional route
602 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
603 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
605 " (?: # opening quote...
606 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
608 \\ [^\x80-\xff] # Escaped something (something != CR)
611 (?: (?: [\040\t] | \(
612 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
613 \) )* \. (?: [\040\t] | \(
614 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
616 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
617 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
619 " (?: # opening quote...
620 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
622 \\ [^\x80-\xff] # Escaped something (something != CR)
624 ) )* # further okay, if led by a period
626 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
627 \) )* @ (?: [\040\t] | \(
628 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
630 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
631 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
633 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
635 ) # initial subdomain
638 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
639 \) )* \. # if led by a period...
641 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
643 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
644 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
646 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
652 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
656 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
657 \) )* # optional trailing comment
659 Alan Other <user\@dom.ain>
662 \"A. Other\" <user.1234\@dom.ain> (a comment)
663 A. Other <user.1234\@dom.ain> (a comment)
664 \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
665 A missing angle <user\@some.where
669 /[\040\t]* # Nab whitespace.
672 [^\\\x80-\xff\n\015()] * # normal*
674 (?: \\ [^\x80-\xff] |
676 [^\\\x80-\xff\n\015()] * # normal*
677 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
680 [^\\\x80-\xff\n\015()] * # normal*
683 [\040\t]* )* # If comment found, allow more spaces.
684 # optional leading comment
687 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
688 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
692 [^\\\x80-\xff\n\015"] * # normal
693 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
697 [\040\t]* # Nab whitespace.
700 [^\\\x80-\xff\n\015()] * # normal*
702 (?: \\ [^\x80-\xff] |
704 [^\\\x80-\xff\n\015()] * # normal*
705 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
708 [^\\\x80-\xff\n\015()] * # normal*
711 [\040\t]* )* # If comment found, allow more spaces.
714 [\040\t]* # Nab whitespace.
717 [^\\\x80-\xff\n\015()] * # normal*
719 (?: \\ [^\x80-\xff] |
721 [^\\\x80-\xff\n\015()] * # normal*
722 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
725 [^\\\x80-\xff\n\015()] * # normal*
728 [\040\t]* )* # If comment found, allow more spaces.
730 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
731 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
735 [^\\\x80-\xff\n\015"] * # normal
736 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
740 [\040\t]* # Nab whitespace.
743 [^\\\x80-\xff\n\015()] * # normal*
745 (?: \\ [^\x80-\xff] |
747 [^\\\x80-\xff\n\015()] * # normal*
748 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
751 [^\\\x80-\xff\n\015()] * # normal*
754 [\040\t]* )* # If comment found, allow more spaces.
758 [\040\t]* # Nab whitespace.
761 [^\\\x80-\xff\n\015()] * # normal*
763 (?: \\ [^\x80-\xff] |
765 [^\\\x80-\xff\n\015()] * # normal*
766 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
769 [^\\\x80-\xff\n\015()] * # normal*
772 [\040\t]* )* # If comment found, allow more spaces.
774 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
775 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
778 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
781 [\040\t]* # Nab whitespace.
784 [^\\\x80-\xff\n\015()] * # normal*
786 (?: \\ [^\x80-\xff] |
788 [^\\\x80-\xff\n\015()] * # normal*
789 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
792 [^\\\x80-\xff\n\015()] * # normal*
795 [\040\t]* )* # If comment found, allow more spaces.
796 # optional trailing comments
799 [\040\t]* # Nab whitespace.
802 [^\\\x80-\xff\n\015()] * # normal*
804 (?: \\ [^\x80-\xff] |
806 [^\\\x80-\xff\n\015()] * # normal*
807 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
810 [^\\\x80-\xff\n\015()] * # normal*
813 [\040\t]* )* # If comment found, allow more spaces.
815 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
816 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
819 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
822 [\040\t]* # Nab whitespace.
825 [^\\\x80-\xff\n\015()] * # normal*
827 (?: \\ [^\x80-\xff] |
829 [^\\\x80-\xff\n\015()] * # normal*
830 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
833 [^\\\x80-\xff\n\015()] * # normal*
836 [\040\t]* )* # If comment found, allow more spaces.
837 # optional trailing comments
842 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
843 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
847 [^\\\x80-\xff\n\015"] * # normal
848 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
853 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # "normal" atoms and or spaces
857 [^\\\x80-\xff\n\015()] * # normal*
859 (?: \\ [^\x80-\xff] |
861 [^\\\x80-\xff\n\015()] * # normal*
862 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
865 [^\\\x80-\xff\n\015()] * # normal*
870 [^\\\x80-\xff\n\015"] * # normal
871 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
873 ) # "special" comment or quoted string
874 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # more "normal"
877 [\040\t]* # Nab whitespace.
880 [^\\\x80-\xff\n\015()] * # normal*
882 (?: \\ [^\x80-\xff] |
884 [^\\\x80-\xff\n\015()] * # normal*
885 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
888 [^\\\x80-\xff\n\015()] * # normal*
891 [\040\t]* )* # If comment found, allow more spaces.
895 [\040\t]* # Nab whitespace.
898 [^\\\x80-\xff\n\015()] * # normal*
900 (?: \\ [^\x80-\xff] |
902 [^\\\x80-\xff\n\015()] * # normal*
903 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
906 [^\\\x80-\xff\n\015()] * # normal*
909 [\040\t]* )* # If comment found, allow more spaces.
911 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
912 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
915 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
918 [\040\t]* # Nab whitespace.
921 [^\\\x80-\xff\n\015()] * # normal*
923 (?: \\ [^\x80-\xff] |
925 [^\\\x80-\xff\n\015()] * # normal*
926 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
929 [^\\\x80-\xff\n\015()] * # normal*
932 [\040\t]* )* # If comment found, allow more spaces.
933 # optional trailing comments
936 [\040\t]* # Nab whitespace.
939 [^\\\x80-\xff\n\015()] * # normal*
941 (?: \\ [^\x80-\xff] |
943 [^\\\x80-\xff\n\015()] * # normal*
944 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
947 [^\\\x80-\xff\n\015()] * # normal*
950 [\040\t]* )* # If comment found, allow more spaces.
952 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
953 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
956 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
959 [\040\t]* # Nab whitespace.
962 [^\\\x80-\xff\n\015()] * # normal*
964 (?: \\ [^\x80-\xff] |
966 [^\\\x80-\xff\n\015()] * # normal*
967 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
970 [^\\\x80-\xff\n\015()] * # normal*
973 [\040\t]* )* # If comment found, allow more spaces.
974 # optional trailing comments
977 [\040\t]* # Nab whitespace.
980 [^\\\x80-\xff\n\015()] * # normal*
982 (?: \\ [^\x80-\xff] |
984 [^\\\x80-\xff\n\015()] * # normal*
985 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
988 [^\\\x80-\xff\n\015()] * # normal*
991 [\040\t]* )* # If comment found, allow more spaces.
993 [\040\t]* # Nab whitespace.
996 [^\\\x80-\xff\n\015()] * # normal*
998 (?: \\ [^\x80-\xff] |
1000 [^\\\x80-\xff\n\015()] * # normal*
1001 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1004 [^\\\x80-\xff\n\015()] * # normal*
1007 [\040\t]* )* # If comment found, allow more spaces.
1009 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1010 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1013 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1016 [\040\t]* # Nab whitespace.
1019 [^\\\x80-\xff\n\015()] * # normal*
1021 (?: \\ [^\x80-\xff] |
1023 [^\\\x80-\xff\n\015()] * # normal*
1024 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1027 [^\\\x80-\xff\n\015()] * # normal*
1030 [\040\t]* )* # If comment found, allow more spaces.
1031 # optional trailing comments
1034 [\040\t]* # Nab whitespace.
1037 [^\\\x80-\xff\n\015()] * # normal*
1039 (?: \\ [^\x80-\xff] |
1041 [^\\\x80-\xff\n\015()] * # normal*
1042 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1045 [^\\\x80-\xff\n\015()] * # normal*
1048 [\040\t]* )* # If comment found, allow more spaces.
1050 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1051 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1054 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1057 [\040\t]* # Nab whitespace.
1060 [^\\\x80-\xff\n\015()] * # normal*
1062 (?: \\ [^\x80-\xff] |
1064 [^\\\x80-\xff\n\015()] * # normal*
1065 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1068 [^\\\x80-\xff\n\015()] * # normal*
1071 [\040\t]* )* # If comment found, allow more spaces.
1072 # optional trailing comments
1074 )* # additional domains
1076 [\040\t]* # Nab whitespace.
1079 [^\\\x80-\xff\n\015()] * # normal*
1081 (?: \\ [^\x80-\xff] |
1083 [^\\\x80-\xff\n\015()] * # normal*
1084 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1087 [^\\\x80-\xff\n\015()] * # normal*
1090 [\040\t]* )* # If comment found, allow more spaces.
1091 # optional trailing comments
1094 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1095 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1099 [^\\\x80-\xff\n\015"] * # normal
1100 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
1104 [\040\t]* # Nab whitespace.
1107 [^\\\x80-\xff\n\015()] * # normal*
1109 (?: \\ [^\x80-\xff] |
1111 [^\\\x80-\xff\n\015()] * # normal*
1112 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1115 [^\\\x80-\xff\n\015()] * # normal*
1118 [\040\t]* )* # If comment found, allow more spaces.
1121 [\040\t]* # Nab whitespace.
1124 [^\\\x80-\xff\n\015()] * # normal*
1126 (?: \\ [^\x80-\xff] |
1128 [^\\\x80-\xff\n\015()] * # normal*
1129 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1132 [^\\\x80-\xff\n\015()] * # normal*
1135 [\040\t]* )* # If comment found, allow more spaces.
1137 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1138 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1142 [^\\\x80-\xff\n\015"] * # normal
1143 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
1147 [\040\t]* # Nab whitespace.
1150 [^\\\x80-\xff\n\015()] * # normal*
1152 (?: \\ [^\x80-\xff] |
1154 [^\\\x80-\xff\n\015()] * # normal*
1155 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1158 [^\\\x80-\xff\n\015()] * # normal*
1161 [\040\t]* )* # If comment found, allow more spaces.
1165 [\040\t]* # Nab whitespace.
1168 [^\\\x80-\xff\n\015()] * # normal*
1170 (?: \\ [^\x80-\xff] |
1172 [^\\\x80-\xff\n\015()] * # normal*
1173 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1176 [^\\\x80-\xff\n\015()] * # normal*
1179 [\040\t]* )* # If comment found, allow more spaces.
1181 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1182 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1185 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1188 [\040\t]* # Nab whitespace.
1191 [^\\\x80-\xff\n\015()] * # normal*
1193 (?: \\ [^\x80-\xff] |
1195 [^\\\x80-\xff\n\015()] * # normal*
1196 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1199 [^\\\x80-\xff\n\015()] * # normal*
1202 [\040\t]* )* # If comment found, allow more spaces.
1203 # optional trailing comments
1206 [\040\t]* # Nab whitespace.
1209 [^\\\x80-\xff\n\015()] * # normal*
1211 (?: \\ [^\x80-\xff] |
1213 [^\\\x80-\xff\n\015()] * # normal*
1214 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1217 [^\\\x80-\xff\n\015()] * # normal*
1220 [\040\t]* )* # If comment found, allow more spaces.
1222 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1223 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1226 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1229 [\040\t]* # Nab whitespace.
1232 [^\\\x80-\xff\n\015()] * # normal*
1234 (?: \\ [^\x80-\xff] |
1236 [^\\\x80-\xff\n\015()] * # normal*
1237 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1240 [^\\\x80-\xff\n\015()] * # normal*
1243 [\040\t]* )* # If comment found, allow more spaces.
1244 # optional trailing comments
1251 Alan Other <user\@dom.ain>
1254 \"A. Other\" <user.1234\@dom.ain> (a comment)
1255 A. Other <user.1234\@dom.ain> (a comment)
1256 \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
1257 A missing angle <user\@some.where
1261 /abc\0def\00pqr\000xyz\0000AB/
1262 abc\0def\00pqr\000xyz\0000AB
1263 abc456 abc\0def\00pqr\000xyz\0000ABCDE
1265 /abc\x0def\x00pqr\x000xyz\x0000AB/
1266 abc\x0def\x00pqr\x000xyz\x0000AB
1267 abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE
1349 /([^.]*)\.([^:]*):[T ]+(.*)/
1350 track1.title:TBlah blah blah
1352 /([^.]*)\.([^:]*):[T ]+(.*)/i
1353 track1.title:TBlah blah blah
1355 /([^.]*)\.([^:]*):[t ]+(.*)/i
1356 track1.title:TBlah blah blah
1496 /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\12\123/
1499 /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
1523 /^([^a])([^\b])([^c]*)([^d]{3,4})/
1591 /\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/
1592 \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
1594 /P[^*]TAIRE[^*]{1,6}?LL/
1595 xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
1597 /P[^*]TAIRE[^*]{1,}?LL/
1598 xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
1605 /(\.\d\d((?=0)|\d(?=\d)))/
1615 Food is on the foo table
1618 The food is under the bar in the barn.
1621 The food is under the bar in the barn.
1624 I have 2 numbers: 53147
1627 I have 2 numbers: 53147
1630 I have 2 numbers: 53147
1633 I have 2 numbers: 53147
1636 I have 2 numbers: 53147
1639 I have 2 numbers: 53147
1642 I have 2 numbers: 53147
1645 I have 2 numbers: 53147
1650 /^(\D*)(?=\d)(?!123)/
1678 /\d\d\/\d\d\/\d\d\d\d/
1681 /word (?:[a-zA-Z0-9]+ ){0,10}otherword/
1682 word cat dog elephant mussel cow horse canary baboon snake shark otherword
1683 word cat dog elephant mussel cow horse canary baboon snake shark
1685 /word (?:[a-zA-Z0-9]+ ){0,300}otherword/
1686 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
1767 borfle\nbib.gif\nno\n
1770 borfle\nbib.gif\nno\n
1773 borfle\nbib.gif\nno\n
1776 borfle\nbib.gif\nno\n
1831 /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
1834 /^\d\d\d\d\d\d\d\d\d\d\d\d/
1837 /^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
1849 /^[abcdefghijklmnopqrstuvwxy0123456789]/
1882 the \"quick\" brown fox
1883 \"the \\\"quick\\\" brown fox\"
1897 /<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
1898 <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>
1950 / End of testinput1 /