Files
cl-ppcre/test/perltestdata
2014-01-05 20:40:34 +01:00

14293 lines
840 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(1 "\"the quick brown fox\" =~ /the quick brown fox/" "the quick brown fox" nil nil nil nil "the quick brown fox" nil "the quick brown fox" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(2 "\"The quick brown FOX\" =~ /the quick brown fox/" "the quick brown fox" nil nil nil nil "The quick brown FOX" nil nil nil)
(3 "\"What do you know about the quick brown fox?\" =~ /the quick brown fox/" "the quick brown fox" nil nil nil nil "What do you know about the quick brown fox?" nil "the quick brown fox" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(4 "\"What do you know about THE QUICK BROWN FOX?\" =~ /the quick brown fox/" "the quick brown fox" nil nil nil nil "What do you know about THE QUICK BROWN FOX?" nil nil nil)
(5 "\"the quick brown fox\" =~ /The quick brown fox/i" "The quick brown fox" t nil nil nil "the quick brown fox" nil "the quick brown fox" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(6 "\"The quick brown FOX\" =~ /The quick brown fox/i" "The quick brown fox" t nil nil nil "The quick brown FOX" nil "The quick brown FOX" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(7 "\"What do you know about the quick brown fox?\" =~ /The quick brown fox/i" "The quick brown fox" t nil nil nil "What do you know about the quick brown fox?" nil "the quick brown fox" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(8 "\"What do you know about THE QUICK BROWN FOX?\" =~ /The quick brown fox/i" "The quick brown fox" t nil nil nil "What do you know about THE QUICK BROWN FOX?" nil "THE QUICK BROWN FOX" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(9 "\"abcd\\t\\n\\r\\f\\a\\e9;\\$\\\\?caxyz\" =~ /abcd\\t\\n\\r\\f\\a\\e\\071\\x3b\\$\\\\\\?caxyz/" "abcd\\t\\n\\r\\f\\a\\e\\071\\x3b\\$\\\\\\?caxyz" nil nil nil nil ("abcd" 9 10 13 12 7 27 "9;$\\?caxyz") nil ("abcd" 9 10 13 12 7 27 "9;$\\?caxyz") (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(10 "\"abxyzpqrrrabbxyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "abxyzpqrrrabbxyyyypqAzz" nil "abxyzpqrrrabbxyyyypqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(11 "\"abxyzpqrrrabbxyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "abxyzpqrrrabbxyyyypqAzz" nil "abxyzpqrrrabbxyyyypqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(12 "\"aabxyzpqrrrabbxyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aabxyzpqrrrabbxyyyypqAzz" nil "aabxyzpqrrrabbxyyyypqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(13 "\"aaabxyzpqrrrabbxyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aaabxyzpqrrrabbxyyyypqAzz" nil "aaabxyzpqrrrabbxyyyypqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(14 "\"aaaabxyzpqrrrabbxyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aaaabxyzpqrrrabbxyyyypqAzz" nil "aaaabxyzpqrrrabbxyyyypqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(15 "\"abcxyzpqrrrabbxyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "abcxyzpqrrrabbxyyyypqAzz" nil "abcxyzpqrrrabbxyyyypqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(16 "\"aabcxyzpqrrrabbxyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aabcxyzpqrrrabbxyyyypqAzz" nil "aabcxyzpqrrrabbxyyyypqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(17 "\"aaabcxyzpqrrrabbxyyyypAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aaabcxyzpqrrrabbxyyyypAzz" nil "aaabcxyzpqrrrabbxyyyypAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(18 "\"aaabcxyzpqrrrabbxyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aaabcxyzpqrrrabbxyyyypqAzz" nil "aaabcxyzpqrrrabbxyyyypqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(19 "\"aaabcxyzpqrrrabbxyyyypqqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aaabcxyzpqrrrabbxyyyypqqAzz" nil "aaabcxyzpqrrrabbxyyyypqqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(20 "\"aaabcxyzpqrrrabbxyyyypqqqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aaabcxyzpqrrrabbxyyyypqqqAzz" nil "aaabcxyzpqrrrabbxyyyypqqqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(21 "\"aaabcxyzpqrrrabbxyyyypqqqqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aaabcxyzpqrrrabbxyyyypqqqqAzz" nil "aaabcxyzpqrrrabbxyyyypqqqqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(22 "\"aaabcxyzpqrrrabbxyyyypqqqqqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aaabcxyzpqrrrabbxyyyypqqqqqAzz" nil "aaabcxyzpqrrrabbxyyyypqqqqqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(23 "\"aaabcxyzpqrrrabbxyyyypqqqqqqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aaabcxyzpqrrrabbxyyyypqqqqqqAzz" nil "aaabcxyzpqrrrabbxyyyypqqqqqqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(24 "\"aaaabcxyzpqrrrabbxyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aaaabcxyzpqrrrabbxyyyypqAzz" nil "aaaabcxyzpqrrrabbxyyyypqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(25 "\"abxyzzpqrrrabbxyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "abxyzzpqrrrabbxyyyypqAzz" nil "abxyzzpqrrrabbxyyyypqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(26 "\"aabxyzzzpqrrrabbxyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aabxyzzzpqrrrabbxyyyypqAzz" nil "aabxyzzzpqrrrabbxyyyypqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(27 "\"aaabxyzzzzpqrrrabbxyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aaabxyzzzzpqrrrabbxyyyypqAzz" nil "aaabxyzzzzpqrrrabbxyyyypqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(28 "\"aaaabxyzzzzpqrrrabbxyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aaaabxyzzzzpqrrrabbxyyyypqAzz" nil "aaaabxyzzzzpqrrrabbxyyyypqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(29 "\"abcxyzzpqrrrabbxyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "abcxyzzpqrrrabbxyyyypqAzz" nil "abcxyzzpqrrrabbxyyyypqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(30 "\"aabcxyzzzpqrrrabbxyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aabcxyzzzpqrrrabbxyyyypqAzz" nil "aabcxyzzzpqrrrabbxyyyypqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(31 "\"aaabcxyzzzzpqrrrabbxyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aaabcxyzzzzpqrrrabbxyyyypqAzz" nil "aaabcxyzzzzpqrrrabbxyyyypqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(32 "\"aaaabcxyzzzzpqrrrabbxyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aaaabcxyzzzzpqrrrabbxyyyypqAzz" nil "aaaabcxyzzzzpqrrrabbxyyyypqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(33 "\"aaaabcxyzzzzpqrrrabbbxyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aaaabcxyzzzzpqrrrabbbxyyyypqAzz" nil "aaaabcxyzzzzpqrrrabbbxyyyypqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(34 "\"aaaabcxyzzzzpqrrrabbbxyyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aaaabcxyzzzzpqrrrabbbxyyyyypqAzz" nil "aaaabcxyzzzzpqrrrabbbxyyyyypqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(35 "\"aaabcxyzpqrrrabbxyyyypABzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aaabcxyzpqrrrabbxyyyypABzz" nil "aaabcxyzpqrrrabbxyyyypABzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(36 "\"aaabcxyzpqrrrabbxyyyypABBzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aaabcxyzpqrrrabbxyyyypABBzz" nil "aaabcxyzpqrrrabbxyyyypABBzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(37 "\">>>aaabxyzpqrrrabbxyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil ">>>aaabxyzpqrrrabbxyyyypqAzz" nil "aaabxyzpqrrrabbxyyyypqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(38 "\">aaaabxyzpqrrrabbxyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil ">aaaabxyzpqrrrabbxyyyypqAzz" nil "aaaabxyzpqrrrabbxyyyypqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(39 "\">>>>abcxyzpqrrrabbxyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil ">>>>abcxyzpqrrrabbxyyyypqAzz" nil "abcxyzpqrrrabbxyyyypqAzz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(40 "\"abxyzpqrrabbxyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "abxyzpqrrabbxyyyypqAzz" nil nil nil)
(41 "\"abxyzpqrrrrabbxyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "abxyzpqrrrrabbxyyyypqAzz" nil nil nil)
(42 "\"abxyzpqrrrabxyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "abxyzpqrrrabxyyyypqAzz" nil nil nil)
(43 "\"aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz" nil nil nil)
(44 "\"aaaabcxyzzzzpqrrrabbbxyyypqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aaaabcxyzzzzpqrrrabbbxyyypqAzz" nil nil nil)
(45 "\"aaabcxyzpqrrrabbxyyyypqqqqqqqAzz\" =~ /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/" "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" nil nil nil nil "aaabcxyzpqrrrabbxyyyypqqqqqqqAzz" nil nil nil)
(46 "\"abczz\" =~ /^(abc){1,2}zz/" "^(abc){1,2}zz" nil nil nil nil "abczz" nil "abczz" ("abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(47 "\"abcabczz\" =~ /^(abc){1,2}zz/" "^(abc){1,2}zz" nil nil nil nil "abcabczz" nil "abcabczz" ("abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(48 "\"zz\" =~ /^(abc){1,2}zz/" "^(abc){1,2}zz" nil nil nil nil "zz" nil nil nil)
(49 "\"abcabcabczz\" =~ /^(abc){1,2}zz/" "^(abc){1,2}zz" nil nil nil nil "abcabcabczz" nil nil nil)
(50 "\">>abczz\" =~ /^(abc){1,2}zz/" "^(abc){1,2}zz" nil nil nil nil ">>abczz" nil nil nil)
(51 "\"bc\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "bc" nil "bc" ("b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(52 "\"bbc\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "bbc" nil "bbc" ("b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(53 "\"bbbc\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "bbbc" nil "bbbc" ("bb" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(54 "\"bac\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "bac" nil "bac" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(55 "\"bbac\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "bbac" nil "bbac" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(56 "\"aac\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "aac" nil "aac" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(57 "\"abbbbbbbbbbbc\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "abbbbbbbbbbbc" nil "abbbbbbbbbbbc" ("bbbbbbbbbbb" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(58 "\"bbbbbbbbbbbac\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "bbbbbbbbbbbac" nil "bbbbbbbbbbbac" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(59 "\"aaac\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "aaac" nil nil nil)
(60 "\"abbbbbbbbbbbac\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "abbbbbbbbbbbac" nil nil nil)
(61 "\"bc\" =~ /^(b+|a){1,2}c/" "^(b+|a){1,2}c" nil nil nil nil "bc" nil "bc" ("b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(62 "\"bbc\" =~ /^(b+|a){1,2}c/" "^(b+|a){1,2}c" nil nil nil nil "bbc" nil "bbc" ("bb" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(63 "\"bbbc\" =~ /^(b+|a){1,2}c/" "^(b+|a){1,2}c" nil nil nil nil "bbbc" nil "bbbc" ("bbb" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(64 "\"bac\" =~ /^(b+|a){1,2}c/" "^(b+|a){1,2}c" nil nil nil nil "bac" nil "bac" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(65 "\"bbac\" =~ /^(b+|a){1,2}c/" "^(b+|a){1,2}c" nil nil nil nil "bbac" nil "bbac" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(66 "\"aac\" =~ /^(b+|a){1,2}c/" "^(b+|a){1,2}c" nil nil nil nil "aac" nil "aac" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(67 "\"abbbbbbbbbbbc\" =~ /^(b+|a){1,2}c/" "^(b+|a){1,2}c" nil nil nil nil "abbbbbbbbbbbc" nil "abbbbbbbbbbbc" ("bbbbbbbbbbb" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(68 "\"bbbbbbbbbbbac\" =~ /^(b+|a){1,2}c/" "^(b+|a){1,2}c" nil nil nil nil "bbbbbbbbbbbac" nil "bbbbbbbbbbbac" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(69 "\"aaac\" =~ /^(b+|a){1,2}c/" "^(b+|a){1,2}c" nil nil nil nil "aaac" nil nil nil)
(70 "\"abbbbbbbbbbbac\" =~ /^(b+|a){1,2}c/" "^(b+|a){1,2}c" nil nil nil nil "abbbbbbbbbbbac" nil nil nil)
(71 "\"bbc\" =~ /^(b+|a){1,2}?bc/" "^(b+|a){1,2}?bc" nil nil nil nil "bbc" nil "bbc" ("b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(72 "\"babc\" =~ /^(b*|ba){1,2}?bc/" "^(b*|ba){1,2}?bc" nil nil nil nil "babc" nil "babc" ("ba" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(73 "\"bbabc\" =~ /^(b*|ba){1,2}?bc/" "^(b*|ba){1,2}?bc" nil nil nil nil "bbabc" nil "bbabc" ("ba" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(74 "\"bababc\" =~ /^(b*|ba){1,2}?bc/" "^(b*|ba){1,2}?bc" nil nil nil nil "bababc" nil "bababc" ("ba" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(75 "\"bababbc\" =~ /^(b*|ba){1,2}?bc/" "^(b*|ba){1,2}?bc" nil nil nil nil "bababbc" nil nil nil)
(76 "\"babababc\" =~ /^(b*|ba){1,2}?bc/" "^(b*|ba){1,2}?bc" nil nil nil nil "babababc" nil nil nil)
(77 "\"babc\" =~ /^(ba|b*){1,2}?bc/" "^(ba|b*){1,2}?bc" nil nil nil nil "babc" nil "babc" ("ba" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(78 "\"bbabc\" =~ /^(ba|b*){1,2}?bc/" "^(ba|b*){1,2}?bc" nil nil nil nil "bbabc" nil "bbabc" ("ba" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(79 "\"bababc\" =~ /^(ba|b*){1,2}?bc/" "^(ba|b*){1,2}?bc" nil nil nil nil "bababc" nil "bababc" ("ba" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(80 "\"bababbc\" =~ /^(ba|b*){1,2}?bc/" "^(ba|b*){1,2}?bc" nil nil nil nil "bababbc" nil nil nil)
(81 "\"babababc\" =~ /^(ba|b*){1,2}?bc/" "^(ba|b*){1,2}?bc" nil nil nil nil "babababc" nil nil nil)
(82 "\"\\x01\\x01\\e;z\" =~ /^\\ca\\cA\\c[\\c{\\c:/" "^\\ca\\cA\\c[\\c{\\c:" nil nil nil nil ("" 1 1 27 ";z") nil ("" 1 1 27 ";z") (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(83 "\"athing\" =~ /^[ab\\]cde]/" "^[ab\\]cde]" nil nil nil nil "athing" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(84 "\"bthing\" =~ /^[ab\\]cde]/" "^[ab\\]cde]" nil nil nil nil "bthing" nil "b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(85 "\"]thing\" =~ /^[ab\\]cde]/" "^[ab\\]cde]" nil nil nil nil "]thing" nil "]" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(86 "\"cthing\" =~ /^[ab\\]cde]/" "^[ab\\]cde]" nil nil nil nil "cthing" nil "c" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(87 "\"dthing\" =~ /^[ab\\]cde]/" "^[ab\\]cde]" nil nil nil nil "dthing" nil "d" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(88 "\"ething\" =~ /^[ab\\]cde]/" "^[ab\\]cde]" nil nil nil nil "ething" nil "e" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(89 "\"fthing\" =~ /^[ab\\]cde]/" "^[ab\\]cde]" nil nil nil nil "fthing" nil nil nil)
(90 "\"[thing\" =~ /^[ab\\]cde]/" "^[ab\\]cde]" nil nil nil nil "[thing" nil nil nil)
(91 "\"\\\\thing\" =~ /^[ab\\]cde]/" "^[ab\\]cde]" nil nil nil nil "\\thing" nil nil nil)
(92 "\"]thing\" =~ /^[]cde]/" "^[]cde]" nil nil nil nil "]thing" nil "]" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(93 "\"cthing\" =~ /^[]cde]/" "^[]cde]" nil nil nil nil "cthing" nil "c" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(94 "\"dthing\" =~ /^[]cde]/" "^[]cde]" nil nil nil nil "dthing" nil "d" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(95 "\"ething\" =~ /^[]cde]/" "^[]cde]" nil nil nil nil "ething" nil "e" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(96 "\"athing\" =~ /^[]cde]/" "^[]cde]" nil nil nil nil "athing" nil nil nil)
(97 "\"fthing\" =~ /^[]cde]/" "^[]cde]" nil nil nil nil "fthing" nil nil nil)
(98 "\"fthing\" =~ /^[^ab\\]cde]/" "^[^ab\\]cde]" nil nil nil nil "fthing" nil "f" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(99 "\"[thing\" =~ /^[^ab\\]cde]/" "^[^ab\\]cde]" nil nil nil nil "[thing" nil "[" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(100 "\"\\\\thing\" =~ /^[^ab\\]cde]/" "^[^ab\\]cde]" nil nil nil nil "\\thing" nil "\\" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(101 "\"athing\" =~ /^[^ab\\]cde]/" "^[^ab\\]cde]" nil nil nil nil "athing" nil nil nil)
(102 "\"bthing\" =~ /^[^ab\\]cde]/" "^[^ab\\]cde]" nil nil nil nil "bthing" nil nil nil)
(103 "\"]thing\" =~ /^[^ab\\]cde]/" "^[^ab\\]cde]" nil nil nil nil "]thing" nil nil nil)
(104 "\"cthing\" =~ /^[^ab\\]cde]/" "^[^ab\\]cde]" nil nil nil nil "cthing" nil nil nil)
(105 "\"dthing\" =~ /^[^ab\\]cde]/" "^[^ab\\]cde]" nil nil nil nil "dthing" nil nil nil)
(106 "\"ething\" =~ /^[^ab\\]cde]/" "^[^ab\\]cde]" nil nil nil nil "ething" nil nil nil)
(107 "\"athing\" =~ /^[^]cde]/" "^[^]cde]" nil nil nil nil "athing" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(108 "\"fthing\" =~ /^[^]cde]/" "^[^]cde]" nil nil nil nil "fthing" nil "f" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(109 "\"]thing\" =~ /^[^]cde]/" "^[^]cde]" nil nil nil nil "]thing" nil nil nil)
(110 "\"cthing\" =~ /^[^]cde]/" "^[^]cde]" nil nil nil nil "cthing" nil nil nil)
(111 "\"dthing\" =~ /^[^]cde]/" "^[^]cde]" nil nil nil nil "dthing" nil nil nil)
(112 "\"ething\" =~ /^[^]cde]/" "^[^]cde]" nil nil nil nil "ething" nil nil nil)
(113 ("\"" 129 "\" =~ /^\\" 129 "/") "^\\<5C>" nil nil nil nil ("" 129) nil ("" 129) (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(114 ("\"" 255 "\" =~ /^" 255 "/") "^<5E>" nil nil nil nil ("" 255) nil ("" 255) (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(115 "\"0\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "0" nil "0" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(116 "\"1\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "1" nil "1" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(117 "\"2\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "2" nil "2" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(118 "\"3\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "3" nil "3" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(119 "\"4\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "4" nil "4" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(120 "\"5\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "5" nil "5" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(121 "\"6\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "6" nil "6" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(122 "\"7\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "7" nil "7" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(123 "\"8\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "8" nil "8" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(124 "\"9\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "9" nil "9" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(125 "\"10\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "10" nil "10" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(126 "\"100\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "100" nil "100" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(127 "\"abc\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "abc" nil nil nil)
(128 "\"enter\" =~ /^.*nter/" "^.*nter" nil nil nil nil "enter" nil "enter" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(129 "\"inter\" =~ /^.*nter/" "^.*nter" nil nil nil nil "inter" nil "inter" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(130 "\"uponter\" =~ /^.*nter/" "^.*nter" nil nil nil nil "uponter" nil "uponter" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(131 "\"xxx0\" =~ /^xxx[0-9]+$/" "^xxx[0-9]+$" nil nil nil nil "xxx0" nil "xxx0" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(132 "\"xxx1234\" =~ /^xxx[0-9]+$/" "^xxx[0-9]+$" nil nil nil nil "xxx1234" nil "xxx1234" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(133 "\"xxx\" =~ /^xxx[0-9]+$/" "^xxx[0-9]+$" nil nil nil nil "xxx" nil nil nil)
(134 "\"x123\" =~ /^.+[0-9][0-9][0-9]$/" "^.+[0-9][0-9][0-9]$" nil nil nil nil "x123" nil "x123" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(135 "\"xx123\" =~ /^.+[0-9][0-9][0-9]$/" "^.+[0-9][0-9][0-9]$" nil nil nil nil "xx123" nil "xx123" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(136 "\"123456\" =~ /^.+[0-9][0-9][0-9]$/" "^.+[0-9][0-9][0-9]$" nil nil nil nil "123456" nil "123456" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(137 "\"123\" =~ /^.+[0-9][0-9][0-9]$/" "^.+[0-9][0-9][0-9]$" nil nil nil nil "123" nil nil nil)
(138 "\"x1234\" =~ /^.+[0-9][0-9][0-9]$/" "^.+[0-9][0-9][0-9]$" nil nil nil nil "x1234" nil "x1234" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(139 "\"x123\" =~ /^.+?[0-9][0-9][0-9]$/" "^.+?[0-9][0-9][0-9]$" nil nil nil nil "x123" nil "x123" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(140 "\"xx123\" =~ /^.+?[0-9][0-9][0-9]$/" "^.+?[0-9][0-9][0-9]$" nil nil nil nil "xx123" nil "xx123" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(141 "\"123456\" =~ /^.+?[0-9][0-9][0-9]$/" "^.+?[0-9][0-9][0-9]$" nil nil nil nil "123456" nil "123456" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(142 "\"123\" =~ /^.+?[0-9][0-9][0-9]$/" "^.+?[0-9][0-9][0-9]$" nil nil nil nil "123" nil nil nil)
(143 "\"x1234\" =~ /^.+?[0-9][0-9][0-9]$/" "^.+?[0-9][0-9][0-9]$" nil nil nil nil "x1234" nil "x1234" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(144 "\"abc!pqr=apquxz.ixr.zzz.ac.uk\" =~ /^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$/" "^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$" nil nil nil nil "abc!pqr=apquxz.ixr.zzz.ac.uk" nil "abc!pqr=apquxz.ixr.zzz.ac.uk" ("abc" "pqr" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(145 "\"!pqr=apquxz.ixr.zzz.ac.uk\" =~ /^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$/" "^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$" nil nil nil nil "!pqr=apquxz.ixr.zzz.ac.uk" nil nil nil)
(146 "\"abc!=apquxz.ixr.zzz.ac.uk\" =~ /^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$/" "^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$" nil nil nil nil "abc!=apquxz.ixr.zzz.ac.uk" nil nil nil)
(147 "\"abc!pqr=apquxz:ixr.zzz.ac.uk\" =~ /^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$/" "^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$" nil nil nil nil "abc!pqr=apquxz:ixr.zzz.ac.uk" nil nil nil)
(148 "\"abc!pqr=apquxz.ixr.zzz.ac.ukk\" =~ /^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$/" "^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$" nil nil nil nil "abc!pqr=apquxz.ixr.zzz.ac.ukk" nil nil nil)
(149 "\"Well, we need a colon: somewhere\" =~ /:/" ":" nil nil nil nil "Well, we need a colon: somewhere" nil ":" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(150 "\"Fail if we don't\" =~ /:/" ":" nil nil nil nil "Fail if we don't" nil nil nil)
(151 "\"0abc\" =~ /([\\da-f:]+)$/i" "([\\da-f:]+)$" t nil nil nil "0abc" nil "0abc" ("0abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(152 "\"abc\" =~ /([\\da-f:]+)$/i" "([\\da-f:]+)$" t nil nil nil "abc" nil "abc" ("abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(153 "\"fed\" =~ /([\\da-f:]+)$/i" "([\\da-f:]+)$" t nil nil nil "fed" nil "fed" ("fed" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(154 "\"E\" =~ /([\\da-f:]+)$/i" "([\\da-f:]+)$" t nil nil nil "E" nil "E" ("E" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(155 "\"::\" =~ /([\\da-f:]+)$/i" "([\\da-f:]+)$" t nil nil nil "::" nil "::" ("::" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(156 "\"5f03:12C0::932e\" =~ /([\\da-f:]+)$/i" "([\\da-f:]+)$" t nil nil nil "5f03:12C0::932e" nil "5f03:12C0::932e" ("5f03:12C0::932e" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(157 "\"fed def\" =~ /([\\da-f:]+)$/i" "([\\da-f:]+)$" t nil nil nil "fed def" nil "def" ("def" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(158 "\"Any old stuff\" =~ /([\\da-f:]+)$/i" "([\\da-f:]+)$" t nil nil nil "Any old stuff" nil "ff" ("ff" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(159 "\"0zzz\" =~ /([\\da-f:]+)$/i" "([\\da-f:]+)$" t nil nil nil "0zzz" nil nil nil)
(160 "\"gzzz\" =~ /([\\da-f:]+)$/i" "([\\da-f:]+)$" t nil nil nil "gzzz" nil nil nil)
(161 "\"fed\\x20\" =~ /([\\da-f:]+)$/i" "([\\da-f:]+)$" t nil nil nil "fed " nil nil nil)
(162 "\"Any old rubbish\" =~ /([\\da-f:]+)$/i" "([\\da-f:]+)$" t nil nil nil "Any old rubbish" nil nil nil)
(163 "\".1.2.3\" =~ /^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$/" "^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$" nil nil nil nil ".1.2.3" nil ".1.2.3" ("1" "2" "3" nil nil nil nil nil nil nil nil nil nil nil nil nil))
(164 "\"A.12.123.0\" =~ /^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$/" "^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$" nil nil nil nil "A.12.123.0" nil "A.12.123.0" ("12" "123" "0" nil nil nil nil nil nil nil nil nil nil nil nil nil))
(165 "\".1.2.3333\" =~ /^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$/" "^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$" nil nil nil nil ".1.2.3333" nil nil nil)
(166 "\"1.2.3\" =~ /^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$/" "^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$" nil nil nil nil "1.2.3" nil nil nil)
(167 "\"1234.2.3\" =~ /^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$/" "^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$" nil nil nil nil "1234.2.3" nil nil nil)
(168 "\"1 IN SOA non-sp1 non-sp2(\" =~ /^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$/" "^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$" nil nil nil nil "1 IN SOA non-sp1 non-sp2(" nil "1 IN SOA non-sp1 non-sp2(" ("1" "non-sp1" "non-sp2" nil nil nil nil nil nil nil nil nil nil nil nil nil))
(169 "\"1 IN SOA non-sp1 non-sp2 (\" =~ /^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$/" "^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$" nil nil nil nil "1 IN SOA non-sp1 non-sp2 (" nil "1 IN SOA non-sp1 non-sp2 (" ("1" "non-sp1" "non-sp2" nil nil nil nil nil nil nil nil nil nil nil nil nil))
(170 "\"1IN SOA non-sp1 non-sp2(\" =~ /^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$/" "^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$" nil nil nil nil "1IN SOA non-sp1 non-sp2(" nil nil nil)
(171 "\"a.\" =~ /^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$/" "^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$" nil nil nil nil "a." nil "a." (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(172 "\"Z.\" =~ /^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$/" "^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$" nil nil nil nil "Z." nil "Z." (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(173 "\"2.\" =~ /^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$/" "^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$" nil nil nil nil "2." nil "2." (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(174 "\"ab-c.pq-r.\" =~ /^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$/" "^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$" nil nil nil nil "ab-c.pq-r." nil "ab-c.pq-r." (".pq-r" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(175 "\"sxk.zzz.ac.uk.\" =~ /^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$/" "^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$" nil nil nil nil "sxk.zzz.ac.uk." nil "sxk.zzz.ac.uk." (".uk" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(176 "\"x-.y-.\" =~ /^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$/" "^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$" nil nil nil nil "x-.y-." nil "x-.y-." (".y-" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(177 "\"-abc.peq.\" =~ /^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$/" "^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$" nil nil nil nil "-abc.peq." nil nil nil)
(178 "\"*.a\" =~ /^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$/" "^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$" nil nil nil nil "*.a" nil "*.a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(179 "\"*.b0-a\" =~ /^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$/" "^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$" nil nil nil nil "*.b0-a" nil "*.b0-a" ("0-a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(180 "\"*.c3-b.c\" =~ /^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$/" "^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$" nil nil nil nil "*.c3-b.c" nil "*.c3-b.c" ("3-b" ".c" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(181 "\"*.c-a.b-c\" =~ /^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$/" "^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$" nil nil nil nil "*.c-a.b-c" nil "*.c-a.b-c" ("-a" ".b-c" "-c" nil nil nil nil nil nil nil nil nil nil nil nil nil))
(182 "\"*.0\" =~ /^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$/" "^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$" nil nil nil nil "*.0" nil nil nil)
(183 "\"*.a-\" =~ /^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$/" "^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$" nil nil nil nil "*.a-" nil nil nil)
(184 "\"*.a-b.c-\" =~ /^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$/" "^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$" nil nil nil nil "*.a-b.c-" nil nil nil)
(185 "\"*.c-a.0-c\" =~ /^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$/" "^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$" nil nil nil nil "*.c-a.0-c" nil nil nil)
(186 "\"abde\" =~ /^(?=ab(de))(abd)(e)/" "^(?=ab(de))(abd)(e)" nil nil nil nil "abde" nil "abde" ("de" "abd" "e" nil nil nil nil nil nil nil nil nil nil nil nil nil))
(187 "\"abdf\" =~ /^(?!(ab)de|x)(abd)(f)/" "^(?!(ab)de|x)(abd)(f)" nil nil nil nil "abdf" nil "abdf" (nil "abd" "f" nil nil nil nil nil nil nil nil nil nil nil nil nil))
(188 "\"abcd\" =~ /^(?=(ab(cd)))(ab)/" "^(?=(ab(cd)))(ab)" nil nil nil nil "abcd" nil "ab" ("abcd" "cd" "ab" nil nil nil nil nil nil nil nil nil nil nil nil nil))
(189 "\"a.b.c.d\" =~ /^[\\da-f](\\.[\\da-f])*$/i" "^[\\da-f](\\.[\\da-f])*$" t nil nil nil "a.b.c.d" nil "a.b.c.d" (".d" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(190 "\"A.B.C.D\" =~ /^[\\da-f](\\.[\\da-f])*$/i" "^[\\da-f](\\.[\\da-f])*$" t nil nil nil "A.B.C.D" nil "A.B.C.D" (".D" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(191 "\"a.b.c.1.2.3.C\" =~ /^[\\da-f](\\.[\\da-f])*$/i" "^[\\da-f](\\.[\\da-f])*$" t nil nil nil "a.b.c.1.2.3.C" nil "a.b.c.1.2.3.C" (".C" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(192 "\"\\\"1234\\\"\" =~ /^\\\".*\\\"\\s*(;.*)?$/" "^\\\".*\\\"\\s*(;.*)?$" nil nil nil nil "\"1234\"" nil "\"1234\"" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(193 "\"\\\"abcd\\\" ;\" =~ /^\\\".*\\\"\\s*(;.*)?$/" "^\\\".*\\\"\\s*(;.*)?$" nil nil nil nil "\"abcd\" ;" nil "\"abcd\" ;" (";" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(194 "\"\\\"\\\" ; rhubarb\" =~ /^\\\".*\\\"\\s*(;.*)?$/" "^\\\".*\\\"\\s*(;.*)?$" nil nil nil nil "\"\" ; rhubarb" nil "\"\" ; rhubarb" ("; rhubarb" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(195 "\"\\\"1234\\\" : things\" =~ /^\\\".*\\\"\\s*(;.*)?$/" "^\\\".*\\\"\\s*(;.*)?$" nil nil nil nil "\"1234\" : things" nil nil nil)
(196 "\"\\\" =~ /^$/" "^$" nil nil nil nil "" nil "" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(197 "\"ab c\" =~ / ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)/x" " ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)" nil nil nil t "ab c" nil "ab c" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(198 "\"abc\" =~ / ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)/x" " ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)" nil nil nil t "abc" nil nil nil)
(199 "\"ab cde\" =~ / ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)/x" " ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)" nil nil nil t "ab cde" nil nil nil)
(200 "\"ab c\" =~ /(?x) ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)/" "(?x) ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)" nil nil nil nil "ab c" nil "ab c" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(201 "\"abc\" =~ /(?x) ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)/" "(?x) ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)" nil nil nil nil "abc" nil nil nil)
(202 "\"ab cde\" =~ /(?x) ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)/" "(?x) ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)" nil nil nil nil "ab cde" nil nil nil)
(203 "\"a bcd\" =~ /^ a\\ b[c ]d $/x" "^ a\\ b[c ]d $" nil nil nil t "a bcd" nil "a bcd" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(204 "\"a b d\" =~ /^ a\\ b[c ]d $/x" "^ a\\ b[c ]d $" nil nil nil t "a b d" nil "a b d" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(205 "\"abcd\" =~ /^ a\\ b[c ]d $/x" "^ a\\ b[c ]d $" nil nil nil t "abcd" nil nil nil)
(206 "\"ab d\" =~ /^ a\\ b[c ]d $/x" "^ a\\ b[c ]d $" nil nil nil t "ab d" nil nil nil)
(207 "\"abcdefhijklm\" =~ /^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/" "^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$" nil nil nil nil "abcdefhijklm" nil "abcdefhijklm" ("abc" "bc" "c" "def" "ef" "f" "hij" "ij" "j" "klm" "lm" "m" nil nil nil nil))
(208 "\"abcdefhijklm\" =~ /^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/" "^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$" nil nil nil nil "abcdefhijklm" nil "abcdefhijklm" ("bc" "c" "ef" "f" "ij" "j" "lm" "m" nil nil nil nil nil nil nil nil))
(209 "\"a+ Z0+\\x08\\n\\x1d\\x12\" =~ /^[\\w][\\W][\\s][\\S][\\d][\\D][\\b][\\n][\\c]][\\022]/" "^[\\w][\\W][\\s][\\S][\\d][\\D][\\b][\\n][\\c]][\\022]" nil nil nil nil ("a+ Z0+" 8 10 29 18) nil ("a+ Z0+" 8 10 29 18) (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(210 "\".^\\$(*+)|{?,?}\" =~ /^[.^$|()*+?{,}]+/" "^[.^$|()*+?{,}]+" nil nil nil nil ".^$(*+)|{?,?}" nil ".^$(*+)|{?,?}" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(211 "\"z\" =~ /^a*\\w/" "^a*\\w" nil nil nil nil "z" nil "z" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(212 "\"az\" =~ /^a*\\w/" "^a*\\w" nil nil nil nil "az" nil "az" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(213 "\"aaaz\" =~ /^a*\\w/" "^a*\\w" nil nil nil nil "aaaz" nil "aaaz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(214 "\"a\" =~ /^a*\\w/" "^a*\\w" nil nil nil nil "a" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(215 "\"aa\" =~ /^a*\\w/" "^a*\\w" nil nil nil nil "aa" nil "aa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(216 "\"aaaa\" =~ /^a*\\w/" "^a*\\w" nil nil nil nil "aaaa" nil "aaaa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(217 "\"a+\" =~ /^a*\\w/" "^a*\\w" nil nil nil nil "a+" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(218 "\"aa+\" =~ /^a*\\w/" "^a*\\w" nil nil nil nil "aa+" nil "aa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(219 "\"z\" =~ /^a*?\\w/" "^a*?\\w" nil nil nil nil "z" nil "z" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(220 "\"az\" =~ /^a*?\\w/" "^a*?\\w" nil nil nil nil "az" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(221 "\"aaaz\" =~ /^a*?\\w/" "^a*?\\w" nil nil nil nil "aaaz" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(222 "\"a\" =~ /^a*?\\w/" "^a*?\\w" nil nil nil nil "a" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(223 "\"aa\" =~ /^a*?\\w/" "^a*?\\w" nil nil nil nil "aa" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(224 "\"aaaa\" =~ /^a*?\\w/" "^a*?\\w" nil nil nil nil "aaaa" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(225 "\"a+\" =~ /^a*?\\w/" "^a*?\\w" nil nil nil nil "a+" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(226 "\"aa+\" =~ /^a*?\\w/" "^a*?\\w" nil nil nil nil "aa+" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(227 "\"az\" =~ /^a+\\w/" "^a+\\w" nil nil nil nil "az" nil "az" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(228 "\"aaaz\" =~ /^a+\\w/" "^a+\\w" nil nil nil nil "aaaz" nil "aaaz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(229 "\"aa\" =~ /^a+\\w/" "^a+\\w" nil nil nil nil "aa" nil "aa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(230 "\"aaaa\" =~ /^a+\\w/" "^a+\\w" nil nil nil nil "aaaa" nil "aaaa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(231 "\"aa+\" =~ /^a+\\w/" "^a+\\w" nil nil nil nil "aa+" nil "aa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(232 "\"az\" =~ /^a+?\\w/" "^a+?\\w" nil nil nil nil "az" nil "az" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(233 "\"aaaz\" =~ /^a+?\\w/" "^a+?\\w" nil nil nil nil "aaaz" nil "aa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(234 "\"aa\" =~ /^a+?\\w/" "^a+?\\w" nil nil nil nil "aa" nil "aa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(235 "\"aaaa\" =~ /^a+?\\w/" "^a+?\\w" nil nil nil nil "aaaa" nil "aa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(236 "\"aa+\" =~ /^a+?\\w/" "^a+?\\w" nil nil nil nil "aa+" nil "aa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(237 "\"1234567890\" =~ /^\\d{8}\\w{2,}/" "^\\d{8}\\w{2,}" nil nil nil nil "1234567890" nil "1234567890" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(238 "\"12345678ab\" =~ /^\\d{8}\\w{2,}/" "^\\d{8}\\w{2,}" nil nil nil nil "12345678ab" nil "12345678ab" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(239 "\"12345678__\" =~ /^\\d{8}\\w{2,}/" "^\\d{8}\\w{2,}" nil nil nil nil "12345678__" nil "12345678__" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(240 "\"1234567\" =~ /^\\d{8}\\w{2,}/" "^\\d{8}\\w{2,}" nil nil nil nil "1234567" nil nil nil)
(241 "\"uoie\" =~ /^[aeiou\\d]{4,5}$/" "^[aeiou\\d]{4,5}$" nil nil nil nil "uoie" nil "uoie" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(242 "\"1234\" =~ /^[aeiou\\d]{4,5}$/" "^[aeiou\\d]{4,5}$" nil nil nil nil "1234" nil "1234" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(243 "\"12345\" =~ /^[aeiou\\d]{4,5}$/" "^[aeiou\\d]{4,5}$" nil nil nil nil "12345" nil "12345" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(244 "\"aaaaa\" =~ /^[aeiou\\d]{4,5}$/" "^[aeiou\\d]{4,5}$" nil nil nil nil "aaaaa" nil "aaaaa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(245 "\"123456\" =~ /^[aeiou\\d]{4,5}$/" "^[aeiou\\d]{4,5}$" nil nil nil nil "123456" nil nil nil)
(246 "\"uoie\" =~ /^[aeiou\\d]{4,5}?/" "^[aeiou\\d]{4,5}?" nil nil nil nil "uoie" nil "uoie" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(247 "\"1234\" =~ /^[aeiou\\d]{4,5}?/" "^[aeiou\\d]{4,5}?" nil nil nil nil "1234" nil "1234" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(248 "\"12345\" =~ /^[aeiou\\d]{4,5}?/" "^[aeiou\\d]{4,5}?" nil nil nil nil "12345" nil "1234" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(249 "\"aaaaa\" =~ /^[aeiou\\d]{4,5}?/" "^[aeiou\\d]{4,5}?" nil nil nil nil "aaaaa" nil "aaaa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(250 "\"123456\" =~ /^[aeiou\\d]{4,5}?/" "^[aeiou\\d]{4,5}?" nil nil nil nil "123456" nil "1234" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(251 "\"abc=abcabc\" =~ /\\A(abc|def)=(\\1){2,3}\\Z/" "\\A(abc|def)=(\\1){2,3}\\Z" nil nil nil nil "abc=abcabc" nil "abc=abcabc" ("abc" "abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(252 "\"def=defdefdef\" =~ /\\A(abc|def)=(\\1){2,3}\\Z/" "\\A(abc|def)=(\\1){2,3}\\Z" nil nil nil nil "def=defdefdef" nil "def=defdefdef" ("def" "def" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(253 "\"abc=defdef\" =~ /\\A(abc|def)=(\\1){2,3}\\Z/" "\\A(abc|def)=(\\1){2,3}\\Z" nil nil nil nil "abc=defdef" nil nil nil)
(254 "\"abcdefghijkcda2\" =~ /^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\11*(\\3\\4)\\1(?#)2$/" "^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\11*(\\3\\4)\\1(?#)2$" nil nil nil nil "abcdefghijkcda2" nil "abcdefghijkcda2" ("a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "cd" nil nil nil nil))
(255 "\"abcdefghijkkkkcda2\" =~ /^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\11*(\\3\\4)\\1(?#)2$/" "^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\11*(\\3\\4)\\1(?#)2$" nil nil nil nil "abcdefghijkkkkcda2" nil "abcdefghijkkkkcda2" ("a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "cd" nil nil nil nil))
(256 "\"cataract cataract23\" =~ /(cat(a(ract|tonic)|erpillar)) \\1()2(3)/" "(cat(a(ract|tonic)|erpillar)) \\1()2(3)" nil nil nil nil "cataract cataract23" nil "cataract cataract23" ("cataract" "aract" "ract" "" "3" nil nil nil nil nil nil nil nil nil nil nil))
(257 "\"catatonic catatonic23\" =~ /(cat(a(ract|tonic)|erpillar)) \\1()2(3)/" "(cat(a(ract|tonic)|erpillar)) \\1()2(3)" nil nil nil nil "catatonic catatonic23" nil "catatonic catatonic23" ("catatonic" "atonic" "tonic" "" "3" nil nil nil nil nil nil nil nil nil nil nil))
(258 "\"caterpillar caterpillar23\" =~ /(cat(a(ract|tonic)|erpillar)) \\1()2(3)/" "(cat(a(ract|tonic)|erpillar)) \\1()2(3)" nil nil nil nil "caterpillar caterpillar23" nil "caterpillar caterpillar23" ("caterpillar" "erpillar" nil "" "3" nil nil nil nil nil nil nil nil nil nil nil))
(259 "\"From abcd Mon Sep 01 12:33:02 1997\" =~
/^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/" "^From +([^ ]+) +[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]" nil nil nil nil "From abcd Mon Sep 01 12:33:02 1997" nil "From abcd Mon Sep 01 12:33" ("abcd" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(260 "\"From abcd Mon Sep 01 12:33:02 1997\" =~ /^From\\s+\\S+\\s+([a-zA-Z]{3}\\s+){2}\\d{1,2}\\s+\\d\\d:\\d\\d/" "^From\\s+\\S+\\s+([a-zA-Z]{3}\\s+){2}\\d{1,2}\\s+\\d\\d:\\d\\d" nil nil nil nil "From abcd Mon Sep 01 12:33:02 1997" nil "From abcd Mon Sep 01 12:33" ("Sep " nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(261 "\"From abcd Mon Sep 1 12:33:02 1997\" =~ /^From\\s+\\S+\\s+([a-zA-Z]{3}\\s+){2}\\d{1,2}\\s+\\d\\d:\\d\\d/" "^From\\s+\\S+\\s+([a-zA-Z]{3}\\s+){2}\\d{1,2}\\s+\\d\\d:\\d\\d" nil nil nil nil "From abcd Mon Sep 1 12:33:02 1997" nil "From abcd Mon Sep 1 12:33" ("Sep " nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(262 "\"From abcd Sep 01 12:33:02 1997\" =~ /^From\\s+\\S+\\s+([a-zA-Z]{3}\\s+){2}\\d{1,2}\\s+\\d\\d:\\d\\d/" "^From\\s+\\S+\\s+([a-zA-Z]{3}\\s+){2}\\d{1,2}\\s+\\d\\d:\\d\\d" nil nil nil nil "From abcd Sep 01 12:33:02 1997" nil nil nil)
(263 "\"12\\n34\" =~ /^12.34/s" "^12.34" nil nil t nil "12
34" nil "12
34" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(264 "\"12\\r34\" =~ /^12.34/s" "^12.34" nil nil t nil ("12" 13 "34") nil ("12" 13 "34") (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(265 "\"the quick brown\\t fox\" =~ /\\w+(?=\\t)/" "\\w+(?=\\t)" nil nil nil nil ("the quick brown" 9 " fox") nil "brown" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(266 "\"foobar is foolish see?\" =~ /foo(?!bar)(.*)/" "foo(?!bar)(.*)" nil nil nil nil "foobar is foolish see?" nil "foolish see?" ("lish see?" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(267 "\"foobar crowbar etc\" =~ /(?:(?!foo)...|^.{0,2})bar(.*)/" "(?:(?!foo)...|^.{0,2})bar(.*)" nil nil nil nil "foobar crowbar etc" nil "rowbar etc" (" etc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(268 "\"barrel\" =~ /(?:(?!foo)...|^.{0,2})bar(.*)/" "(?:(?!foo)...|^.{0,2})bar(.*)" nil nil nil nil "barrel" nil "barrel" ("rel" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(269 "\"2barrel\" =~ /(?:(?!foo)...|^.{0,2})bar(.*)/" "(?:(?!foo)...|^.{0,2})bar(.*)" nil nil nil nil "2barrel" nil "2barrel" ("rel" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(270 "\"A barrel\" =~ /(?:(?!foo)...|^.{0,2})bar(.*)/" "(?:(?!foo)...|^.{0,2})bar(.*)" nil nil nil nil "A barrel" nil "A barrel" ("rel" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(271 "\"abc456\" =~ /^(\\D*)(?=\\d)(?!123)/" "^(\\D*)(?=\\d)(?!123)" nil nil nil nil "abc456" nil "abc" ("abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(272 "\"abc123\" =~ /^(\\D*)(?=\\d)(?!123)/" "^(\\D*)(?=\\d)(?!123)" nil nil nil nil "abc123" nil nil nil)
(273 "\"1234\" =~ /^1234(?# test newlines
inside)/" "^1234(?# test newlines
inside)" nil nil nil nil "1234" nil "1234" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(274 "\"1234\" =~ /^1234 #comment in extended re
/x" "^1234 #comment in extended re
" nil nil nil t "1234" nil "1234" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(275 "\"abcd\" =~ /#rhubarb
abcd/x" "#rhubarb
abcd" nil nil nil t "abcd" nil "abcd" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(276 "\"abcd\" =~ /^abcd#rhubarb/x" "^abcd#rhubarb" nil nil nil t "abcd" nil "abcd" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(277 "\"aaab\" =~ /^(a)\\1{2,3}(.)/" "^(a)\\1{2,3}(.)" nil nil nil nil "aaab" nil "aaab" ("a" "b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(278 "\"aaaab\" =~ /^(a)\\1{2,3}(.)/" "^(a)\\1{2,3}(.)" nil nil nil nil "aaaab" nil "aaaab" ("a" "b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(279 "\"aaaaab\" =~ /^(a)\\1{2,3}(.)/" "^(a)\\1{2,3}(.)" nil nil nil nil "aaaaab" nil "aaaaa" ("a" "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(280 "\"aaaaaab\" =~ /^(a)\\1{2,3}(.)/" "^(a)\\1{2,3}(.)" nil nil nil nil "aaaaaab" nil "aaaaa" ("a" "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(281 "\"the abc\" =~ /(?!^)abc/" "(?!^)abc" nil nil nil nil "the abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(282 "\"abc\" =~ /(?!^)abc/" "(?!^)abc" nil nil nil nil "abc" nil nil nil)
(283 "\"abc\" =~ /(?=^)abc/" "(?=^)abc" nil nil nil nil "abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(284 "\"the abc\" =~ /(?=^)abc/" "(?=^)abc" nil nil nil nil "the abc" nil nil nil)
(285 "\"aabbbbb\" =~ /^[ab]{1,3}(ab*|b)/" "^[ab]{1,3}(ab*|b)" nil nil nil nil "aabbbbb" nil "aabb" ("b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(286 "\"aabbbbb\" =~ /^[ab]{1,3}?(ab*|b)/" "^[ab]{1,3}?(ab*|b)" nil nil nil nil "aabbbbb" nil "aabbbbb" ("abbbbb" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(287 "\"aabbbbb\" =~ /^[ab]{1,3}?(ab*?|b)/" "^[ab]{1,3}?(ab*?|b)" nil nil nil nil "aabbbbb" nil "aa" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(288 "\"aabbbbb\" =~ /^[ab]{1,3}(ab*?|b)/" "^[ab]{1,3}(ab*?|b)" nil nil nil nil "aabbbbb" nil "aabb" ("b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(289 "\"Alan Other <user\\@dom.ain>\" =~ / (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional leading comment
(?: (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # one word, optionally followed by....
(?:
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or...
\\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) | # comments, or...
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
# quoted strings
)*
< (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # leading <
(?: @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* , (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
)* # further okay, if led by comma
: # closing colon
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* )? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address spec
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* > # trailing >
# name and address
) (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional trailing comment
/x" " (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional leading comment
(?: (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # one word, optionally followed by....
(?:
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or...
\\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) | # comments, or...
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
# quoted strings
)*
< (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # leading <
(?: @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* , (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
)* # further okay, if led by comma
: # closing colon
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* )? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address spec
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* > # trailing >
# name and address
) (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional trailing comment
" nil nil nil t "Alan Other <user@dom.ain>" nil "Alan Other <user@dom.ain>" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(290 "\"<user\\@dom.ain>\" =~ / (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional leading comment
(?: (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # one word, optionally followed by....
(?:
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or...
\\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) | # comments, or...
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
# quoted strings
)*
< (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # leading <
(?: @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* , (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
)* # further okay, if led by comma
: # closing colon
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* )? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address spec
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* > # trailing >
# name and address
) (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional trailing comment
/x" " (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional leading comment
(?: (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # one word, optionally followed by....
(?:
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or...
\\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) | # comments, or...
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
# quoted strings
)*
< (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # leading <
(?: @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* , (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
)* # further okay, if led by comma
: # closing colon
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* )? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address spec
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* > # trailing >
# name and address
) (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional trailing comment
" nil nil nil t "<user@dom.ain>" nil "user@dom.ain" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(291 "\"user\\@dom.ain\" =~ / (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional leading comment
(?: (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # one word, optionally followed by....
(?:
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or...
\\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) | # comments, or...
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
# quoted strings
)*
< (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # leading <
(?: @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* , (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
)* # further okay, if led by comma
: # closing colon
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* )? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address spec
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* > # trailing >
# name and address
) (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional trailing comment
/x" " (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional leading comment
(?: (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # one word, optionally followed by....
(?:
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or...
\\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) | # comments, or...
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
# quoted strings
)*
< (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # leading <
(?: @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* , (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
)* # further okay, if led by comma
: # closing colon
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* )? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address spec
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* > # trailing >
# name and address
) (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional trailing comment
" nil nil nil t "user@dom.ain" nil "user@dom.ain" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(292 "\"\\\"A. Other\\\" <user.1234\\@dom.ain> (a comment)\" =~ / (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional leading comment
(?: (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # one word, optionally followed by....
(?:
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or...
\\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) | # comments, or...
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
# quoted strings
)*
< (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # leading <
(?: @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* , (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
)* # further okay, if led by comma
: # closing colon
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* )? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address spec
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* > # trailing >
# name and address
) (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional trailing comment
/x" " (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional leading comment
(?: (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # one word, optionally followed by....
(?:
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or...
\\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) | # comments, or...
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
# quoted strings
)*
< (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # leading <
(?: @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* , (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
)* # further okay, if led by comma
: # closing colon
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* )? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address spec
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* > # trailing >
# name and address
) (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional trailing comment
" nil nil nil t "\"A. Other\" <user.1234@dom.ain> (a comment)" nil "\"A. Other\" <user.1234@dom.ain> (a comment)" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(293 "\"A. Other <user.1234\\@dom.ain> (a comment)\" =~ / (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional leading comment
(?: (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # one word, optionally followed by....
(?:
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or...
\\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) | # comments, or...
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
# quoted strings
)*
< (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # leading <
(?: @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* , (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
)* # further okay, if led by comma
: # closing colon
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* )? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address spec
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* > # trailing >
# name and address
) (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional trailing comment
/x" " (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional leading comment
(?: (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # one word, optionally followed by....
(?:
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or...
\\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) | # comments, or...
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
# quoted strings
)*
< (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # leading <
(?: @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* , (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
)* # further okay, if led by comma
: # closing colon
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* )? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address spec
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* > # trailing >
# name and address
) (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional trailing comment
" nil nil nil t "A. Other <user.1234@dom.ain> (a comment)" nil " Other <user.1234@dom.ain> (a comment)" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(294 "\"\\\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\\\"\\@x400-re.lay\" =~ / (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional leading comment
(?: (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # one word, optionally followed by....
(?:
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or...
\\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) | # comments, or...
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
# quoted strings
)*
< (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # leading <
(?: @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* , (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
)* # further okay, if led by comma
: # closing colon
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* )? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address spec
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* > # trailing >
# name and address
) (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional trailing comment
/x" " (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional leading comment
(?: (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # one word, optionally followed by....
(?:
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or...
\\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) | # comments, or...
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
# quoted strings
)*
< (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # leading <
(?: @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* , (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
)* # further okay, if led by comma
: # closing colon
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* )? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address spec
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* > # trailing >
# name and address
) (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional trailing comment
" nil nil nil t "\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"@x400-re.lay" nil "\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"@x400-re.lay" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(295 "\"A missing angle <user\\@some.where\" =~ / (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional leading comment
(?: (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # one word, optionally followed by....
(?:
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or...
\\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) | # comments, or...
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
# quoted strings
)*
< (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # leading <
(?: @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* , (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
)* # further okay, if led by comma
: # closing colon
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* )? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address spec
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* > # trailing >
# name and address
) (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional trailing comment
/x" " (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional leading comment
(?: (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # one word, optionally followed by....
(?:
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or...
\\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) | # comments, or...
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
# quoted strings
)*
< (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # leading <
(?: @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* , (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
)* # further okay, if led by comma
: # closing colon
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* )? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address spec
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* > # trailing >
# name and address
) (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional trailing comment
" nil nil nil t "A missing angle <user@some.where" nil "user@some.where" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(296 "\"The quick brown fox\" =~ / (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional leading comment
(?: (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # one word, optionally followed by....
(?:
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or...
\\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) | # comments, or...
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
# quoted strings
)*
< (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # leading <
(?: @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* , (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
)* # further okay, if led by comma
: # closing colon
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* )? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address spec
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* > # trailing >
# name and address
) (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional trailing comment
/x" " (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional leading comment
(?: (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # one word, optionally followed by....
(?:
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or...
\\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) | # comments, or...
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
# quoted strings
)*
< (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # leading <
(?: @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* , (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
)* # further okay, if led by comma
: # closing colon
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* )? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) # initial word
(?: (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\" (?: # opening quote...
[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote
| # or
\\\\ [^\\x80-\\xff] # Escaped something (something != CR)
)* \" # closing quote
) )* # further okay, if led by a period
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* @ (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # initial subdomain
(?: #
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* \\. # if led by a period...
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* (?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
| \\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
) # ...further okay
)*
# address spec
(?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* > # trailing >
# name and address
) (?: [\\040\\t] | \\(
(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*
\\) )* # optional trailing comment
" nil nil nil t "The quick brown fox" nil nil nil)
(297 "\"Alan Other <user\\@dom.ain>\" =~ /[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional leading comment
(?:
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
# leading word
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces
(?:
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
|
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
) # \"special\" comment or quoted string
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\"
)*
<
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# <
(?:
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
(?: ,
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
)* # additional domains
:
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address spec
> # >
# name and address
)
/x" "[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional leading comment
(?:
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
# leading word
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces
(?:
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
|
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
) # \"special\" comment or quoted string
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\"
)*
<
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# <
(?:
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
(?: ,
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
)* # additional domains
:
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address spec
> # >
# name and address
)
" nil nil nil t "Alan Other <user@dom.ain>" nil "Alan Other <user@dom.ain>" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(298 "\"<user\\@dom.ain>\" =~ /[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional leading comment
(?:
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
# leading word
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces
(?:
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
|
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
) # \"special\" comment or quoted string
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\"
)*
<
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# <
(?:
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
(?: ,
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
)* # additional domains
:
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address spec
> # >
# name and address
)
/x" "[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional leading comment
(?:
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
# leading word
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces
(?:
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
|
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
) # \"special\" comment or quoted string
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\"
)*
<
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# <
(?:
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
(?: ,
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
)* # additional domains
:
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address spec
> # >
# name and address
)
" nil nil nil t "<user@dom.ain>" nil "user@dom.ain" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(299 "\"user\\@dom.ain\" =~ /[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional leading comment
(?:
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
# leading word
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces
(?:
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
|
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
) # \"special\" comment or quoted string
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\"
)*
<
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# <
(?:
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
(?: ,
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
)* # additional domains
:
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address spec
> # >
# name and address
)
/x" "[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional leading comment
(?:
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
# leading word
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces
(?:
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
|
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
) # \"special\" comment or quoted string
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\"
)*
<
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# <
(?:
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
(?: ,
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
)* # additional domains
:
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address spec
> # >
# name and address
)
" nil nil nil t "user@dom.ain" nil "user@dom.ain" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(300 "\"\\\"A. Other\\\" <user.1234\\@dom.ain> (a comment)\" =~ /[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional leading comment
(?:
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
# leading word
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces
(?:
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
|
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
) # \"special\" comment or quoted string
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\"
)*
<
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# <
(?:
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
(?: ,
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
)* # additional domains
:
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address spec
> # >
# name and address
)
/x" "[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional leading comment
(?:
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
# leading word
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces
(?:
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
|
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
) # \"special\" comment or quoted string
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\"
)*
<
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# <
(?:
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
(?: ,
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
)* # additional domains
:
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address spec
> # >
# name and address
)
" nil nil nil t "\"A. Other\" <user.1234@dom.ain> (a comment)" nil "\"A. Other\" <user.1234@dom.ain>" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(301 "\"A. Other <user.1234\\@dom.ain> (a comment)\" =~ /[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional leading comment
(?:
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
# leading word
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces
(?:
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
|
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
) # \"special\" comment or quoted string
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\"
)*
<
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# <
(?:
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
(?: ,
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
)* # additional domains
:
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address spec
> # >
# name and address
)
/x" "[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional leading comment
(?:
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
# leading word
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces
(?:
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
|
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
) # \"special\" comment or quoted string
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\"
)*
<
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# <
(?:
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
(?: ,
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
)* # additional domains
:
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address spec
> # >
# name and address
)
" nil nil nil t "A. Other <user.1234@dom.ain> (a comment)" nil " Other <user.1234@dom.ain>" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(302 "\"\\\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\\\"\\@x400-re.lay\" =~ /[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional leading comment
(?:
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
# leading word
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces
(?:
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
|
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
) # \"special\" comment or quoted string
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\"
)*
<
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# <
(?:
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
(?: ,
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
)* # additional domains
:
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address spec
> # >
# name and address
)
/x" "[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional leading comment
(?:
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
# leading word
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces
(?:
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
|
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
) # \"special\" comment or quoted string
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\"
)*
<
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# <
(?:
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
(?: ,
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
)* # additional domains
:
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address spec
> # >
# name and address
)
" nil nil nil t "\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"@x400-re.lay" nil "\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"@x400-re.lay" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(303 "\"A missing angle <user\\@some.where\" =~ /[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional leading comment
(?:
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
# leading word
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces
(?:
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
|
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
) # \"special\" comment or quoted string
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\"
)*
<
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# <
(?:
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
(?: ,
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
)* # additional domains
:
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address spec
> # >
# name and address
)
/x" "[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional leading comment
(?:
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
# leading word
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces
(?:
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
|
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
) # \"special\" comment or quoted string
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\"
)*
<
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# <
(?:
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
(?: ,
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
)* # additional domains
:
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address spec
> # >
# name and address
)
" nil nil nil t "A missing angle <user@some.where" nil "user@some.where" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(304 "\"The quick brown fox\" =~ /[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional leading comment
(?:
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
# leading word
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces
(?:
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
|
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
) # \"special\" comment or quoted string
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\"
)*
<
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# <
(?:
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
(?: ,
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
)* # additional domains
:
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address spec
> # >
# name and address
)
/x" "[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional leading comment
(?:
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address
| # or
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
# leading word
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces
(?:
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
|
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
) # \"special\" comment or quoted string
[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\"
)*
<
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# <
(?:
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
(?: ,
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
)* # additional domains
:
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)? # optional route
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
# Atom
| # or
\" # \"
[^\\\\\\x80-\\xff\\n\\015\"] * # normal
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*
\" # \"
# Quoted string
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# additional words
)*
@
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
(?:
\\.
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
(?:
[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters...
(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom
|
\\[ # [
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff
\\] # ]
)
[\\040\\t]* # Nab whitespace.
(?:
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: # (
(?: \\\\ [^\\x80-\\xff] |
\\( # (
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*
\\) # )
) # special
[^\\\\\\x80-\\xff\\n\\015()] * # normal*
)* # )*
\\) # )
[\\040\\t]* )* # If comment found, allow more spaces.
# optional trailing comments
)*
# address spec
> # >
# name and address
)
" nil nil nil t "The quick brown fox" nil nil nil)
(305 "\"abc\\0def\\00pqr\\000xyz\\0000AB\" =~ /abc\\0def\\00pqr\\000xyz\\0000AB/" "abc\\0def\\00pqr\\000xyz\\0000AB" nil nil nil nil ("abc" 0 "def" 0 "pqr" 0 "xyz" 0 "0AB") nil ("abc" 0 "def" 0 "pqr" 0 "xyz" 0 "0AB") (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(306 "\"abc456 abc\\0def\\00pqr\\000xyz\\0000ABCDE\" =~ /abc\\0def\\00pqr\\000xyz\\0000AB/" "abc\\0def\\00pqr\\000xyz\\0000AB" nil nil nil nil ("abc456 abc" 0 "def" 0 "pqr" 0 "xyz" 0 "0ABCDE") nil ("abc" 0 "def" 0 "pqr" 0 "xyz" 0 "0AB") (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(307 "\"abc\\x0def\\x00pqr\\x000xyz\\x0000AB\" =~ /abc\\x0def\\x00pqr\\x000xyz\\x0000AB/" "abc\\x0def\\x00pqr\\x000xyz\\x0000AB" nil nil nil nil ("abc" 13 "ef" 0 "pqr" 0 "0xyz" 0 "00AB") nil ("abc" 13 "ef" 0 "pqr" 0 "0xyz" 0 "00AB") (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(308 "\"abc456 abc\\x0def\\x00pqr\\x000xyz\\x0000ABCDE\" =~ /abc\\x0def\\x00pqr\\x000xyz\\x0000AB/" "abc\\x0def\\x00pqr\\x000xyz\\x0000AB" nil nil nil nil ("abc456 abc" 13 "ef" 0 "pqr" 0 "0xyz" 0 "00ABCDE") nil ("abc" 13 "ef" 0 "pqr" 0 "0xyz" 0 "00AB") (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(309 "\"\\0A\" =~ /^[\\000-\\037]/" "^[\\000-\\037]" nil nil nil nil ("" 0 "A") nil ("" 0) (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(310 "\"\\01B\" =~ /^[\\000-\\037]/" "^[\\000-\\037]" nil nil nil nil ("" 1 "B") nil ("" 1) (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(311 "\"\\037C\" =~ /^[\\000-\\037]/" "^[\\000-\\037]" nil nil nil nil ("" 31 "C") nil ("" 31) (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(312 "\"\\0\\0\\0\\0\" =~ /\\0*/" "\\0*" nil nil nil nil ("" 0 0 0 0) nil ("" 0 0 0 0) (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(313 "\"The A\\x0\\x0Z\" =~ /A\\x0{2,3}Z/" "A\\x0{2,3}Z" nil nil nil nil ("The A" 0 0 "Z") nil ("A" 0 0 "Z") (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(314 "\"An A\\0\\x0\\0Z\" =~ /A\\x0{2,3}Z/" "A\\x0{2,3}Z" nil nil nil nil ("An A" 0 0 0 "Z") nil ("A" 0 0 0 "Z") (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(315 "\"A\\0Z\" =~ /A\\x0{2,3}Z/" "A\\x0{2,3}Z" nil nil nil nil ("A" 0 "Z") nil nil nil)
(316 "\"A\\0\\x0\\0\\x0Z\" =~ /A\\x0{2,3}Z/" "A\\x0{2,3}Z" nil nil nil nil ("A" 0 0 0 0 "Z") nil nil nil)
(317 "\"cowcowbell\" =~ /^(cow|)\\1(bell)/" "^(cow|)\\1(bell)" nil nil nil nil "cowcowbell" nil "cowcowbell" ("cow" "bell" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(318 "\"bell\" =~ /^(cow|)\\1(bell)/" "^(cow|)\\1(bell)" nil nil nil nil "bell" nil "bell" ("" "bell" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(319 "\"cowbell\" =~ /^(cow|)\\1(bell)/" "^(cow|)\\1(bell)" nil nil nil nil "cowbell" nil nil nil)
(320 "\"\\040abc\" =~ /^\\s/" "^\\s" nil nil nil nil " abc" nil " " (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(321 "\"\\x0cabc\" =~ /^\\s/" "^\\s" nil nil nil nil ("" 12 "abc") nil ("" 12) (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(322 "\"\\nabc\" =~ /^\\s/" "^\\s" nil nil nil nil "
abc" nil "
" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(323 "\"\\rabc\" =~ /^\\s/" "^\\s" nil nil nil nil ("" 13 "abc") nil ("" 13) (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(324 "\"\\tabc\" =~ /^\\s/" "^\\s" nil nil nil nil ("" 9 "abc") nil ("" 9) (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(325 "\"abc\" =~ /^\\s/" "^\\s" nil nil nil nil "abc" nil nil nil)
(326 ("\"abc\" =~ /^a" 9 "b" 10 " " 13 " " 12 " c/x") "^a b
c" nil nil nil t "abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(327 "\"ab\" =~ /^(a|)\\1*b/" "^(a|)\\1*b" nil nil nil nil "ab" nil "ab" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(328 "\"aaaab\" =~ /^(a|)\\1*b/" "^(a|)\\1*b" nil nil nil nil "aaaab" nil "aaaab" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(329 "\"b\" =~ /^(a|)\\1*b/" "^(a|)\\1*b" nil nil nil nil "b" nil "b" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(330 "\"acb\" =~ /^(a|)\\1*b/" "^(a|)\\1*b" nil nil nil nil "acb" nil nil nil)
(331 "\"aab\" =~ /^(a|)\\1+b/" "^(a|)\\1+b" nil nil nil nil "aab" nil "aab" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(332 "\"aaaab\" =~ /^(a|)\\1+b/" "^(a|)\\1+b" nil nil nil nil "aaaab" nil "aaaab" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(333 "\"b\" =~ /^(a|)\\1+b/" "^(a|)\\1+b" nil nil nil nil "b" nil "b" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(334 "\"ab\" =~ /^(a|)\\1+b/" "^(a|)\\1+b" nil nil nil nil "ab" nil nil nil)
(335 "\"ab\" =~ /^(a|)\\1?b/" "^(a|)\\1?b" nil nil nil nil "ab" nil "ab" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(336 "\"aab\" =~ /^(a|)\\1?b/" "^(a|)\\1?b" nil nil nil nil "aab" nil "aab" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(337 "\"b\" =~ /^(a|)\\1?b/" "^(a|)\\1?b" nil nil nil nil "b" nil "b" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(338 "\"acb\" =~ /^(a|)\\1?b/" "^(a|)\\1?b" nil nil nil nil "acb" nil nil nil)
(339 "\"aaab\" =~ /^(a|)\\1{2}b/" "^(a|)\\1{2}b" nil nil nil nil "aaab" nil "aaab" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(340 "\"b\" =~ /^(a|)\\1{2}b/" "^(a|)\\1{2}b" nil nil nil nil "b" nil "b" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(341 "\"ab\" =~ /^(a|)\\1{2}b/" "^(a|)\\1{2}b" nil nil nil nil "ab" nil nil nil)
(342 "\"aab\" =~ /^(a|)\\1{2}b/" "^(a|)\\1{2}b" nil nil nil nil "aab" nil nil nil)
(343 "\"aaaab\" =~ /^(a|)\\1{2}b/" "^(a|)\\1{2}b" nil nil nil nil "aaaab" nil nil nil)
(344 "\"aaab\" =~ /^(a|)\\1{2,3}b/" "^(a|)\\1{2,3}b" nil nil nil nil "aaab" nil "aaab" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(345 "\"aaaab\" =~ /^(a|)\\1{2,3}b/" "^(a|)\\1{2,3}b" nil nil nil nil "aaaab" nil "aaaab" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(346 "\"b\" =~ /^(a|)\\1{2,3}b/" "^(a|)\\1{2,3}b" nil nil nil nil "b" nil "b" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(347 "\"ab\" =~ /^(a|)\\1{2,3}b/" "^(a|)\\1{2,3}b" nil nil nil nil "ab" nil nil nil)
(348 "\"aab\" =~ /^(a|)\\1{2,3}b/" "^(a|)\\1{2,3}b" nil nil nil nil "aab" nil nil nil)
(349 "\"aaaaab\" =~ /^(a|)\\1{2,3}b/" "^(a|)\\1{2,3}b" nil nil nil nil "aaaaab" nil nil nil)
(350 "\"abbbbc\" =~ /ab{1,3}bc/" "ab{1,3}bc" nil nil nil nil "abbbbc" nil "abbbbc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(351 "\"abbbc\" =~ /ab{1,3}bc/" "ab{1,3}bc" nil nil nil nil "abbbc" nil "abbbc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(352 "\"abbc\" =~ /ab{1,3}bc/" "ab{1,3}bc" nil nil nil nil "abbc" nil "abbc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(353 "\"abc\" =~ /ab{1,3}bc/" "ab{1,3}bc" nil nil nil nil "abc" nil nil nil)
(354 "\"abbbbbc\" =~ /ab{1,3}bc/" "ab{1,3}bc" nil nil nil nil "abbbbbc" nil nil nil)
(355 "\"track1.title:TBlah blah blah\" =~ /([^.]*)\\.([^:]*):[T ]+(.*)/" "([^.]*)\\.([^:]*):[T ]+(.*)" nil nil nil nil "track1.title:TBlah blah blah" nil "track1.title:TBlah blah blah" ("track1" "title" "Blah blah blah" nil nil nil nil nil nil nil nil nil nil nil nil nil))
(356 "\"track1.title:TBlah blah blah\" =~ /([^.]*)\\.([^:]*):[T ]+(.*)/i" "([^.]*)\\.([^:]*):[T ]+(.*)" t nil nil nil "track1.title:TBlah blah blah" nil "track1.title:TBlah blah blah" ("track1" "title" "Blah blah blah" nil nil nil nil nil nil nil nil nil nil nil nil nil))
(357 "\"track1.title:TBlah blah blah\" =~ /([^.]*)\\.([^:]*):[t ]+(.*)/i" "([^.]*)\\.([^:]*):[t ]+(.*)" t nil nil nil "track1.title:TBlah blah blah" nil "track1.title:TBlah blah blah" ("track1" "title" "Blah blah blah" nil nil nil nil nil nil nil nil nil nil nil nil nil))
(358 "\"WXY_^abc\" =~ /^[W-c]+$/" "^[W-c]+$" nil nil nil nil "WXY_^abc" nil "WXY_^abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(359 "\"wxy\" =~ /^[W-c]+$/" "^[W-c]+$" nil nil nil nil "wxy" nil nil nil)
(360 "\"WXY_^abc\" =~ /^[W-c]+$/i" "^[W-c]+$" t nil nil nil "WXY_^abc" nil "WXY_^abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(361 "\"wxy_^ABC\" =~ /^[W-c]+$/i" "^[W-c]+$" t nil nil nil "wxy_^ABC" nil "wxy_^ABC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(362 "\"WXY_^abc\" =~ /^[\\x3f-\\x5F]+$/i" "^[\\x3f-\\x5F]+$" t nil nil nil "WXY_^abc" nil "WXY_^abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(363 "\"wxy_^ABC\" =~ /^[\\x3f-\\x5F]+$/i" "^[\\x3f-\\x5F]+$" t nil nil nil "wxy_^ABC" nil "wxy_^ABC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(364 "\"abc\" =~ /^abc$/m" "^abc$" nil t nil nil "abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(365 "\"qqq\\nabc\" =~ /^abc$/m" "^abc$" nil t nil nil "qqq
abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(366 "\"abc\\nzzz\" =~ /^abc$/m" "^abc$" nil t nil nil "abc
zzz" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(367 "\"qqq\\nabc\\nzzz\" =~ /^abc$/m" "^abc$" nil t nil nil "qqq
abc
zzz" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(368 "\"abc\" =~ /^abc$/" "^abc$" nil nil nil nil "abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(369 "\"qqq\\nabc\" =~ /^abc$/" "^abc$" nil nil nil nil "qqq
abc" nil nil nil)
(370 "\"abc\\nzzz\" =~ /^abc$/" "^abc$" nil nil nil nil "abc
zzz" nil nil nil)
(371 "\"qqq\\nabc\\nzzz\" =~ /^abc$/" "^abc$" nil nil nil nil "qqq
abc
zzz" nil nil nil)
(372 "\"abc\" =~ /\\Aabc\\Z/m" "\\Aabc\\Z" nil t nil nil "abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(373 "\"abc\\n\" =~ /\\Aabc\\Z/m" "\\Aabc\\Z" nil t nil nil "abc
" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(374 "\"qqq\\nabc\" =~ /\\Aabc\\Z/m" "\\Aabc\\Z" nil t nil nil "qqq
abc" nil nil nil)
(375 "\"abc\\nzzz\" =~ /\\Aabc\\Z/m" "\\Aabc\\Z" nil t nil nil "abc
zzz" nil nil nil)
(376 "\"qqq\\nabc\\nzzz\" =~ /\\Aabc\\Z/m" "\\Aabc\\Z" nil t nil nil "qqq
abc
zzz" nil nil nil)
(377 "\"abc\\ndef\" =~ /\\A(.)*\\Z/s" "\\A(.)*\\Z" nil nil t nil "abc
def" nil "abc
def" ("f" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(378 "\"abc\\ndef\" =~ /\\A(.)*\\Z/m" "\\A(.)*\\Z" nil t nil nil "abc
def" nil nil nil)
(379 "\"b::c\" =~ /(?:b)|(?::+)/" "(?:b)|(?::+)" nil nil nil nil "b::c" nil "b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(380 "\"c::b\" =~ /(?:b)|(?::+)/" "(?:b)|(?::+)" nil nil nil nil "c::b" nil "::" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(381 "\"az-\" =~ /[-az]+/" "[-az]+" nil nil nil nil "az-" nil "az-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(382 "\"b\" =~ /[-az]+/" "[-az]+" nil nil nil nil "b" nil nil nil)
(383 "\"za-\" =~ /[az-]+/" "[az-]+" nil nil nil nil "za-" nil "za-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(384 "\"b\" =~ /[az-]+/" "[az-]+" nil nil nil nil "b" nil nil nil)
(385 "\"a-z\" =~ /[a\\-z]+/" "[a\\-z]+" nil nil nil nil "a-z" nil "a-z" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(386 "\"b\" =~ /[a\\-z]+/" "[a\\-z]+" nil nil nil nil "b" nil nil nil)
(387 "\"abcdxyz\" =~ /[a-z]+/" "[a-z]+" nil nil nil nil "abcdxyz" nil "abcdxyz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(388 "\"12-34\" =~ /[\\d-]+/" "[\\d-]+" nil nil nil nil "12-34" nil "12-34" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(389 "\"aaa\" =~ /[\\d-]+/" "[\\d-]+" nil nil nil nil "aaa" nil nil nil)
(390 "\"12-34z\" =~ /[\\d-z]+/" "[\\d-z]+" nil nil nil nil "12-34z" nil "12-34z" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(391 "\"aaa\" =~ /[\\d-z]+/" "[\\d-z]+" nil nil nil nil "aaa" nil nil nil)
(392 "\"\\\\\" =~ /\\x5c/" "\\x5c" nil nil nil nil "\\" nil "\\" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(393 "\"the Zoo\" =~ /\\x20Z/" "\\x20Z" nil nil nil nil "the Zoo" nil " Z" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(394 "\"Zulu\" =~ /\\x20Z/" "\\x20Z" nil nil nil nil "Zulu" nil nil nil)
(395 "\"abcabc\" =~ /(abc)\\1/i" "(abc)\\1" t nil nil nil "abcabc" nil "abcabc" ("abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(396 "\"ABCabc\" =~ /(abc)\\1/i" "(abc)\\1" t nil nil nil "ABCabc" nil "ABCabc" ("ABC" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(397 "\"abcABC\" =~ /(abc)\\1/i" "(abc)\\1" t nil nil nil "abcABC" nil "abcABC" ("abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(398 "\"ab{3cd\" =~ /ab{3cd/" "ab{3cd" nil nil nil nil "ab{3cd" nil "ab{3cd" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(399 "\"ab{3,cd\" =~ /ab{3,cd/" "ab{3,cd" nil nil nil nil "ab{3,cd" nil "ab{3,cd" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(400 "\"ab{3,4a}cd\" =~ /ab{3,4a}cd/" "ab{3,4a}cd" nil nil nil nil "ab{3,4a}cd" nil "ab{3,4a}cd" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(401 "\"{4,5a}bc\" =~ /{4,5a}bc/" "{4,5a}bc" nil nil nil nil "{4,5a}bc" nil "{4,5a}bc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(402 "\"a\\rb\" =~ /^a.b/" "^a.b" nil nil nil nil ("a" 13 "b") nil ("a" 13 "b") (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(403 "\"a\\nb\" =~ /^a.b/" "^a.b" nil nil nil nil "a
b" nil nil nil)
(404 "\"abc\" =~ /abc$/" "abc$" nil nil nil nil "abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(405 "\"abc\\n\" =~ /abc$/" "abc$" nil nil nil nil "abc
" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(406 "\"abc\\ndef\" =~ /abc$/" "abc$" nil nil nil nil "abc
def" nil nil nil)
(407 "\"abc\\x53\" =~ /(abc)\\123/" "(abc)\\123" nil nil nil nil "abcS" nil "abcS" ("abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(408 "\"abc\\x93\" =~ /(abc)\\223/" "(abc)\\223" nil nil nil nil ("abc" 147) nil ("abc" 147) ("abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(409 "\"abc\\xd3\" =~ /(abc)\\323/" "(abc)\\323" nil nil nil nil ("abc" 211) nil ("abc" 211) ("abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(410 "\"abc\\x40\" =~ /(abc)\\500/" "(abc)\\500" nil nil nil nil "abc@" nil "abc@" ("abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(411 "\"abc\\100\" =~ /(abc)\\500/" "(abc)\\500" nil nil nil nil "abc@" nil "abc@" ("abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(412 "\"abc\\x400\" =~ /(abc)\\5000/" "(abc)\\5000" nil nil nil nil "abc@0" nil "abc@0" ("abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(413 "\"abc\\x40\\x30\" =~ /(abc)\\5000/" "(abc)\\5000" nil nil nil nil "abc@0" nil "abc@0" ("abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(414 "\"abc\\1000\" =~ /(abc)\\5000/" "(abc)\\5000" nil nil nil nil "abc@0" nil "abc@0" ("abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(415 "\"abc\\100\\x30\" =~ /(abc)\\5000/" "(abc)\\5000" nil nil nil nil "abc@0" nil "abc@0" ("abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(416 "\"abc\\100\\060\" =~ /(abc)\\5000/" "(abc)\\5000" nil nil nil nil "abc@0" nil "abc@0" ("abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(417 "\"abc\\100\\60\" =~ /(abc)\\5000/" "(abc)\\5000" nil nil nil nil "abc@0" nil "abc@0" ("abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(418 "\"abc\\081\" =~ /abc\\81/" "abc\\81" nil nil nil nil ("abc" 0 "81") nil ("abc" 0 "81") (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(419 "\"abc\\0\\x38\\x31\" =~ /abc\\81/" "abc\\81" nil nil nil nil ("abc" 0 "81") nil ("abc" 0 "81") (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(420 "\"abc\\091\" =~ /abc\\91/" "abc\\91" nil nil nil nil ("abc" 0 "91") nil ("abc" 0 "91") (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(421 "\"abc\\0\\x39\\x31\" =~ /abc\\91/" "abc\\91" nil nil nil nil ("abc" 0 "91") nil ("abc" 0 "91") (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(422 "\"abcdefghijkllS\" =~ /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\\12\\123/" "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\\12\\123" nil nil nil nil "abcdefghijkllS" nil "abcdefghijkllS" ("a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" nil nil nil nil))
(423 "\"abcdefghijk\\12S\" =~ /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\12\\123/" "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\12\\123" nil nil nil nil "abcdefghijk
S" nil "abcdefghijk
S" ("a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" nil nil nil nil nil))
(424 "\"abgdef\" =~ /ab\\gdef/" "ab\\gdef" nil nil nil nil "abgdef" nil "abgdef" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(425 "\"bc\" =~ /a{0}bc/" "a{0}bc" nil nil nil nil "bc" nil "bc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(426 "\"xyz\" =~ /(a|(bc)){0,0}?xyz/" "(a|(bc)){0,0}?xyz" nil nil nil nil "xyz" nil "xyz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(427 "\"abc\\010de\" =~ /abc[\\10]de/" "abc[\\10]de" nil nil nil nil ("abc" 8 "de") nil ("abc" 8 "de") (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(428 "\"abc\\1de\" =~ /abc[\\1]de/" "abc[\\1]de" nil nil nil nil ("abc" 1 "de") nil ("abc" 1 "de") (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(429 "\"abc\\1de\" =~ /(abc)[\\1]de/" "(abc)[\\1]de" nil nil nil nil ("abc" 1 "de") nil ("abc" 1 "de") ("abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(430 "\"a\\nb\" =~ /a.b(?s)/" "a.b(?s)" nil nil nil nil "a
b" nil nil nil)
(431 "\"baNOTccccd\" =~ /^([^a])([^\\b])([^c]*)([^d]{3,4})/" "^([^a])([^\\b])([^c]*)([^d]{3,4})" nil nil nil nil "baNOTccccd" nil "baNOTcccc" ("b" "a" "NOT" "cccc" nil nil nil nil nil nil nil nil nil nil nil nil))
(432 "\"baNOTcccd\" =~ /^([^a])([^\\b])([^c]*)([^d]{3,4})/" "^([^a])([^\\b])([^c]*)([^d]{3,4})" nil nil nil nil "baNOTcccd" nil "baNOTccc" ("b" "a" "NOT" "ccc" nil nil nil nil nil nil nil nil nil nil nil nil))
(433 "\"baNOTccd\" =~ /^([^a])([^\\b])([^c]*)([^d]{3,4})/" "^([^a])([^\\b])([^c]*)([^d]{3,4})" nil nil nil nil "baNOTccd" nil "baNOTcc" ("b" "a" "NO" "Tcc" nil nil nil nil nil nil nil nil nil nil nil nil))
(434 "\"bacccd\" =~ /^([^a])([^\\b])([^c]*)([^d]{3,4})/" "^([^a])([^\\b])([^c]*)([^d]{3,4})" nil nil nil nil "bacccd" nil "baccc" ("b" "a" "" "ccc" nil nil nil nil nil nil nil nil nil nil nil nil))
(435 "\"anything\" =~ /^([^a])([^\\b])([^c]*)([^d]{3,4})/" "^([^a])([^\\b])([^c]*)([^d]{3,4})" nil nil nil nil "anything" nil nil nil)
(436 "\"b\\bc\" =~ /^([^a])([^\\b])([^c]*)([^d]{3,4})/" "^([^a])([^\\b])([^c]*)([^d]{3,4})" nil nil nil nil ("b" 8 "c") nil nil nil)
(437 "\"baccd\" =~ /^([^a])([^\\b])([^c]*)([^d]{3,4})/" "^([^a])([^\\b])([^c]*)([^d]{3,4})" nil nil nil nil "baccd" nil nil nil)
(438 "\"Abc\" =~ /[^a]/" "[^a]" nil nil nil nil "Abc" nil "A" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(439 "\"Abc\" =~ /[^a]/i" "[^a]" t nil nil nil "Abc" nil "b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(440 "\"AAAaAbc\" =~ /[^a]+/" "[^a]+" nil nil nil nil "AAAaAbc" nil "AAA" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(441 "\"AAAaAbc\" =~ /[^a]+/i" "[^a]+" t nil nil nil "AAAaAbc" nil "bc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(442 "\"bbb\\nccc\" =~ /[^a]+/" "[^a]+" nil nil nil nil "bbb
ccc" nil "bbb
ccc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(443 "\"abc\" =~ /[^k]$/" "[^k]$" nil nil nil nil "abc" nil "c" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(444 "\"abk\" =~ /[^k]$/" "[^k]$" nil nil nil nil "abk" nil nil nil)
(445 "\"abc\" =~ /[^k]{2,3}$/" "[^k]{2,3}$" nil nil nil nil "abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(446 "\"kbc\" =~ /[^k]{2,3}$/" "[^k]{2,3}$" nil nil nil nil "kbc" nil "bc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(447 "\"kabc\" =~ /[^k]{2,3}$/" "[^k]{2,3}$" nil nil nil nil "kabc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(448 "\"abk\" =~ /[^k]{2,3}$/" "[^k]{2,3}$" nil nil nil nil "abk" nil nil nil)
(449 "\"akb\" =~ /[^k]{2,3}$/" "[^k]{2,3}$" nil nil nil nil "akb" nil nil nil)
(450 "\"akk\" =~ /[^k]{2,3}$/" "[^k]{2,3}$" nil nil nil nil "akk" nil nil nil)
(451 "\"12345678\\@a.b.c.d\" =~ /^\\d{8,}\\@.+[^k]$/" "^\\d{8,}\\@.+[^k]$" nil nil nil nil "12345678@a.b.c.d" nil "12345678@a.b.c.d" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(452 "\"123456789\\@x.y.z\" =~ /^\\d{8,}\\@.+[^k]$/" "^\\d{8,}\\@.+[^k]$" nil nil nil nil "123456789@x.y.z" nil "123456789@x.y.z" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(453 "\"12345678\\@x.y.uk\" =~ /^\\d{8,}\\@.+[^k]$/" "^\\d{8,}\\@.+[^k]$" nil nil nil nil "12345678@x.y.uk" nil nil nil)
(454 "\"1234567\\@a.b.c.d\" =~ /^\\d{8,}\\@.+[^k]$/" "^\\d{8,}\\@.+[^k]$" nil nil nil nil "1234567@a.b.c.d" nil nil nil)
(455 "\"aaaaaaaaa\" =~ /(a)\\1{8,}/" "(a)\\1{8,}" nil nil nil nil "aaaaaaaaa" nil "aaaaaaaaa" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(456 "\"aaaaaaaaaa\" =~ /(a)\\1{8,}/" "(a)\\1{8,}" nil nil nil nil "aaaaaaaaaa" nil "aaaaaaaaaa" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(457 "\"aaaaaaa\" =~ /(a)\\1{8,}/" "(a)\\1{8,}" nil nil nil nil "aaaaaaa" nil nil nil)
(458 "\"aaaabcd\" =~ /[^a]/" "[^a]" nil nil nil nil "aaaabcd" nil "b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(459 "\"aaAabcd\" =~ /[^a]/" "[^a]" nil nil nil nil "aaAabcd" nil "A" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(460 "\"aaaabcd\" =~ /[^a]/i" "[^a]" t nil nil nil "aaaabcd" nil "b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(461 "\"aaAabcd\" =~ /[^a]/i" "[^a]" t nil nil nil "aaAabcd" nil "b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(462 "\"aaaabcd\" =~ /[^az]/" "[^az]" nil nil nil nil "aaaabcd" nil "b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(463 "\"aaAabcd\" =~ /[^az]/" "[^az]" nil nil nil nil "aaAabcd" nil "A" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(464 "\"aaaabcd\" =~ /[^az]/i" "[^az]" t nil nil nil "aaaabcd" nil "b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(465 "\"aaAabcd\" =~ /[^az]/i" "[^az]" t nil nil nil "aaAabcd" nil "b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(466 "\"\\000\\001\\002\\003\\004\\005\\006\\007\\010\\011\\012\\013\\014\\015\\016\\017\\020\\021\\022\\023\\024\\025\\026\\027\\030\\031\\032\\033\\034\\035\\036\\037\\040\\041\\042\\043\\044\\045\\046\\047\\050\\051\\052\\053\\054\\055\\056\\057\\060\\061\\062\\063\\064\\065\\066\\067\\070\\071\\072\\073\\074\\075\\076\\077\\100\\101\\102\\103\\104\\105\\106\\107\\110\\111\\112\\113\\114\\115\\116\\117\\120\\121\\122\\123\\124\\125\\126\\127\\130\\131\\132\\133\\134\\135\\136\\137\\140\\141\\142\\143\\144\\145\\146\\147\\150\\151\\152\\153\\154\\155\\156\\157\\160\\161\\162\\163\\164\\165\\166\\167\\170\\171\\172\\173\\174\\175\\176\\177\\200\\201\\202\\203\\204\\205\\206\\207\\210\\211\\212\\213\\214\\215\\216\\217\\220\\221\\222\\223\\224\\225\\226\\227\\230\\231\\232\\233\\234\\235\\236\\237\\240\\241\\242\\243\\244\\245\\246\\247\\250\\251\\252\\253\\254\\255\\256\\257\\260\\261\\262\\263\\264\\265\\266\\267\\270\\271\\272\\273\\274\\275\\276\\277\\300\\301\\302\\303\\304\\305\\306\\307\\310\\311\\312\\313\\314\\315\\316\\317\\320\\321\\322\\323\\324\\325\\326\\327\\330\\331\\332\\333\\334\\335\\336\\337\\340\\341\\342\\343\\344\\345\\346\\347\\350\\351\\352\\353\\354\\355\\356\\357\\360\\361\\362\\363\\364\\365\\366\\367\\370\\371\\372\\373\\374\\375\\376\\377\" =~ /\\000\\001\\002\\003\\004\\005\\006\\007\\010\\011\\012\\013\\014\\015\\016\\017\\020\\021\\022\\023\\024\\025\\026\\027\\030\\031\\032\\033\\034\\035\\036\\037\\040\\041\\042\\043\\044\\045\\046\\047\\050\\051\\052\\053\\054\\055\\056\\057\\060\\061\\062\\063\\064\\065\\066\\067\\070\\071\\072\\073\\074\\075\\076\\077\\100\\101\\102\\103\\104\\105\\106\\107\\110\\111\\112\\113\\114\\115\\116\\117\\120\\121\\122\\123\\124\\125\\126\\127\\130\\131\\132\\133\\134\\135\\136\\137\\140\\141\\142\\143\\144\\145\\146\\147\\150\\151\\152\\153\\154\\155\\156\\157\\160\\161\\162\\163\\164\\165\\166\\167\\170\\171\\172\\173\\174\\175\\176\\177\\200\\201\\202\\203\\204\\205\\206\\207\\210\\211\\212\\213\\214\\215\\216\\217\\220\\221\\222\\223\\224\\225\\226\\227\\230\\231\\232\\233\\234\\235\\236\\237\\240\\241\\242\\243\\244\\245\\246\\247\\250\\251\\252\\253\\254\\255\\256\\257\\260\\261\\262\\263\\264\\265\\266\\267\\270\\271\\272\\273\\274\\275\\276\\277\\300\\301\\302\\303\\304\\305\\306\\307\\310\\311\\312\\313\\314\\315\\316\\317\\320\\321\\322\\323\\324\\325\\326\\327\\330\\331\\332\\333\\334\\335\\336\\337\\340\\341\\342\\343\\344\\345\\346\\347\\350\\351\\352\\353\\354\\355\\356\\357\\360\\361\\362\\363\\364\\365\\366\\367\\370\\371\\372\\373\\374\\375\\376\\377/" "\\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" nil nil nil nil ("" 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255) nil ("" 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255) (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(467 "\"xxxxxxxxxxxPSTAIREISLLxxxxxxxxx\" =~ /P[^*]TAIRE[^*]{1,6}?LL/" "P[^*]TAIRE[^*]{1,6}?LL" nil nil nil nil "xxxxxxxxxxxPSTAIREISLLxxxxxxxxx" nil "PSTAIREISLL" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(468 "\"xxxxxxxxxxxPSTAIREISLLxxxxxxxxx\" =~ /P[^*]TAIRE[^*]{1,}?LL/" "P[^*]TAIRE[^*]{1,}?LL" nil nil nil nil "xxxxxxxxxxxPSTAIREISLLxxxxxxxxx" nil "PSTAIREISLL" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(469 "\"1.230003938\" =~ /(\\.\\d\\d[1-9]?)\\d+/" "(\\.\\d\\d[1-9]?)\\d+" nil nil nil nil "1.230003938" nil ".230003938" (".23" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(470 "\"1.875000282\" =~ /(\\.\\d\\d[1-9]?)\\d+/" "(\\.\\d\\d[1-9]?)\\d+" nil nil nil nil "1.875000282" nil ".875000282" (".875" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(471 "\"1.235\" =~ /(\\.\\d\\d[1-9]?)\\d+/" "(\\.\\d\\d[1-9]?)\\d+" nil nil nil nil "1.235" nil ".235" (".23" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(472 "\"1.230003938\" =~ /(\\.\\d\\d((?=0)|\\d(?=\\d)))/" "(\\.\\d\\d((?=0)|\\d(?=\\d)))" nil nil nil nil "1.230003938" nil ".23" (".23" "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(473 "\"1.875000282\" =~ /(\\.\\d\\d((?=0)|\\d(?=\\d)))/" "(\\.\\d\\d((?=0)|\\d(?=\\d)))" nil nil nil nil "1.875000282" nil ".875" (".875" "5" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(474 "\"1.235\" =~ /(\\.\\d\\d((?=0)|\\d(?=\\d)))/" "(\\.\\d\\d((?=0)|\\d(?=\\d)))" nil nil nil nil "1.235" nil nil nil)
(475 "\"ab\" =~ /a(?)b/" "a(?)b" nil nil nil nil "ab" nil "ab" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(476 "\"Food is on the foo table\" =~ /\\b(foo)\\s+(\\w+)/i" "\\b(foo)\\s+(\\w+)" t nil nil nil "Food is on the foo table" nil "foo table" ("foo" "table" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(477 "\"The food is under the bar in the barn.\" =~ /foo(.*)bar/" "foo(.*)bar" nil nil nil nil "The food is under the bar in the barn." nil "food is under the bar in the bar" ("d is under the bar in the " nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(478 "\"The food is under the bar in the barn.\" =~ /foo(.*?)bar/" "foo(.*?)bar" nil nil nil nil "The food is under the bar in the barn." nil "food is under the bar" ("d is under the " nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(479 "\"I have 2 numbers: 53147\" =~ /(.*)(\\d*)/" "(.*)(\\d*)" nil nil nil nil "I have 2 numbers: 53147" nil "I have 2 numbers: 53147" ("I have 2 numbers: 53147" "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(480 "\"I have 2 numbers: 53147\" =~ /(.*)(\\d+)/" "(.*)(\\d+)" nil nil nil nil "I have 2 numbers: 53147" nil "I have 2 numbers: 53147" ("I have 2 numbers: 5314" "7" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(481 "\"I have 2 numbers: 53147\" =~ /(.*?)(\\d*)/" "(.*?)(\\d*)" nil nil nil nil "I have 2 numbers: 53147" nil "" ("" "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(482 "\"I have 2 numbers: 53147\" =~ /(.*?)(\\d+)/" "(.*?)(\\d+)" nil nil nil nil "I have 2 numbers: 53147" nil "I have 2" ("I have " "2" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(483 "\"I have 2 numbers: 53147\" =~ /(.*)(\\d+)$/" "(.*)(\\d+)$" nil nil nil nil "I have 2 numbers: 53147" nil "I have 2 numbers: 53147" ("I have 2 numbers: 5314" "7" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(484 "\"I have 2 numbers: 53147\" =~ /(.*?)(\\d+)$/" "(.*?)(\\d+)$" nil nil nil nil "I have 2 numbers: 53147" nil "I have 2 numbers: 53147" ("I have 2 numbers: " "53147" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(485 "\"I have 2 numbers: 53147\" =~ /(.*)\\b(\\d+)$/" "(.*)\\b(\\d+)$" nil nil nil nil "I have 2 numbers: 53147" nil "I have 2 numbers: 53147" ("I have 2 numbers: " "53147" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(486 "\"I have 2 numbers: 53147\" =~ /(.*\\D)(\\d+)$/" "(.*\\D)(\\d+)$" nil nil nil nil "I have 2 numbers: 53147" nil "I have 2 numbers: 53147" ("I have 2 numbers: " "53147" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(487 "\"ABC123\" =~ /^\\D*(?!123)/" "^\\D*(?!123)" nil nil nil nil "ABC123" nil "AB" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(488 "\"ABC445\" =~ /^(\\D*)(?=\\d)(?!123)/" "^(\\D*)(?=\\d)(?!123)" nil nil nil nil "ABC445" nil "ABC" ("ABC" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(489 "\"ABC123\" =~ /^(\\D*)(?=\\d)(?!123)/" "^(\\D*)(?=\\d)(?!123)" nil nil nil nil "ABC123" nil nil nil)
(490 "\"W46]789\" =~ /^[W-]46]/" "^[W-]46]" nil nil nil nil "W46]789" nil "W46]" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(491 "\"-46]789\" =~ /^[W-]46]/" "^[W-]46]" nil nil nil nil "-46]789" nil "-46]" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(492 "\"Wall\" =~ /^[W-]46]/" "^[W-]46]" nil nil nil nil "Wall" nil nil nil)
(493 "\"Zebra\" =~ /^[W-]46]/" "^[W-]46]" nil nil nil nil "Zebra" nil nil nil)
(494 "\"42\" =~ /^[W-]46]/" "^[W-]46]" nil nil nil nil "42" nil nil nil)
(495 "\"[abcd]\" =~ /^[W-]46]/" "^[W-]46]" nil nil nil nil "[abcd]" nil nil nil)
(496 "\"]abcd[\" =~ /^[W-]46]/" "^[W-]46]" nil nil nil nil "]abcd[" nil nil nil)
(497 "\"W46]789\" =~ /^[W-\\]46]/" "^[W-\\]46]" nil nil nil nil "W46]789" nil "W" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(498 "\"Wall\" =~ /^[W-\\]46]/" "^[W-\\]46]" nil nil nil nil "Wall" nil "W" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(499 "\"Zebra\" =~ /^[W-\\]46]/" "^[W-\\]46]" nil nil nil nil "Zebra" nil "Z" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(500 "\"Xylophone\" =~ /^[W-\\]46]/" "^[W-\\]46]" nil nil nil nil "Xylophone" nil "X" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(501 "\"42\" =~ /^[W-\\]46]/" "^[W-\\]46]" nil nil nil nil "42" nil "4" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(502 "\"[abcd]\" =~ /^[W-\\]46]/" "^[W-\\]46]" nil nil nil nil "[abcd]" nil "[" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(503 "\"]abcd[\" =~ /^[W-\\]46]/" "^[W-\\]46]" nil nil nil nil "]abcd[" nil "]" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(504 "\"\\\\backslash\" =~ /^[W-\\]46]/" "^[W-\\]46]" nil nil nil nil "\\backslash" nil "\\" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(505 "\"-46]789\" =~ /^[W-\\]46]/" "^[W-\\]46]" nil nil nil nil "-46]789" nil nil nil)
(506 "\"well\" =~ /^[W-\\]46]/" "^[W-\\]46]" nil nil nil nil "well" nil nil nil)
(507 "\"01/01/2000\" =~ /\\d\\d\\/\\d\\d\\/\\d\\d\\d\\d/" "\\d\\d\\/\\d\\d\\/\\d\\d\\d\\d" nil nil nil nil "01/01/2000" nil "01/01/2000" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(508 "\"word cat dog elephant mussel cow horse canary baboon snake shark otherword\" =~ /word (?:[a-zA-Z0-9]+ ){0,10}otherword/" "word (?:[a-zA-Z0-9]+ ){0,10}otherword" nil nil nil nil "word cat dog elephant mussel cow horse canary baboon snake shark otherword" nil "word cat dog elephant mussel cow horse canary baboon snake shark otherword" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(509 "\"word cat dog elephant mussel cow horse canary baboon snake shark\" =~ /word (?:[a-zA-Z0-9]+ ){0,10}otherword/" "word (?:[a-zA-Z0-9]+ ){0,10}otherword" nil nil nil nil "word cat dog elephant mussel cow horse canary baboon snake shark" nil nil nil)
(510 "\"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\" =~ /word (?:[a-zA-Z0-9]+ ){0,300}otherword/" "word (?:[a-zA-Z0-9]+ ){0,300}otherword" nil nil nil nil "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" nil nil nil)
(511 "\"bcd\" =~ /^(a){0,0}/" "^(a){0,0}" nil nil nil nil "bcd" nil "" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(512 "\"abc\" =~ /^(a){0,0}/" "^(a){0,0}" nil nil nil nil "abc" nil "" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(513 "\"aab\" =~ /^(a){0,0}/" "^(a){0,0}" nil nil nil nil "aab" nil "" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(514 "\"bcd\" =~ /^(a){0,1}/" "^(a){0,1}" nil nil nil nil "bcd" nil "" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(515 "\"abc\" =~ /^(a){0,1}/" "^(a){0,1}" nil nil nil nil "abc" nil "a" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(516 "\"aab\" =~ /^(a){0,1}/" "^(a){0,1}" nil nil nil nil "aab" nil "a" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(517 "\"bcd\" =~ /^(a){0,2}/" "^(a){0,2}" nil nil nil nil "bcd" nil "" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(518 "\"abc\" =~ /^(a){0,2}/" "^(a){0,2}" nil nil nil nil "abc" nil "a" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(519 "\"aab\" =~ /^(a){0,2}/" "^(a){0,2}" nil nil nil nil "aab" nil "aa" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(520 "\"bcd\" =~ /^(a){0,3}/" "^(a){0,3}" nil nil nil nil "bcd" nil "" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(521 "\"abc\" =~ /^(a){0,3}/" "^(a){0,3}" nil nil nil nil "abc" nil "a" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(522 "\"aab\" =~ /^(a){0,3}/" "^(a){0,3}" nil nil nil nil "aab" nil "aa" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(523 "\"aaa\" =~ /^(a){0,3}/" "^(a){0,3}" nil nil nil nil "aaa" nil "aaa" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(524 "\"bcd\" =~ /^(a){0,}/" "^(a){0,}" nil nil nil nil "bcd" nil "" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(525 "\"abc\" =~ /^(a){0,}/" "^(a){0,}" nil nil nil nil "abc" nil "a" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(526 "\"aab\" =~ /^(a){0,}/" "^(a){0,}" nil nil nil nil "aab" nil "aa" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(527 "\"aaa\" =~ /^(a){0,}/" "^(a){0,}" nil nil nil nil "aaa" nil "aaa" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(528 "\"aaaaaaaa\" =~ /^(a){0,}/" "^(a){0,}" nil nil nil nil "aaaaaaaa" nil "aaaaaaaa" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(529 "\"bcd\" =~ /^(a){1,1}/" "^(a){1,1}" nil nil nil nil "bcd" nil nil nil)
(530 "\"abc\" =~ /^(a){1,1}/" "^(a){1,1}" nil nil nil nil "abc" nil "a" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(531 "\"aab\" =~ /^(a){1,1}/" "^(a){1,1}" nil nil nil nil "aab" nil "a" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(532 "\"bcd\" =~ /^(a){1,2}/" "^(a){1,2}" nil nil nil nil "bcd" nil nil nil)
(533 "\"abc\" =~ /^(a){1,2}/" "^(a){1,2}" nil nil nil nil "abc" nil "a" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(534 "\"aab\" =~ /^(a){1,2}/" "^(a){1,2}" nil nil nil nil "aab" nil "aa" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(535 "\"bcd\" =~ /^(a){1,3}/" "^(a){1,3}" nil nil nil nil "bcd" nil nil nil)
(536 "\"abc\" =~ /^(a){1,3}/" "^(a){1,3}" nil nil nil nil "abc" nil "a" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(537 "\"aab\" =~ /^(a){1,3}/" "^(a){1,3}" nil nil nil nil "aab" nil "aa" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(538 "\"aaa\" =~ /^(a){1,3}/" "^(a){1,3}" nil nil nil nil "aaa" nil "aaa" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(539 "\"bcd\" =~ /^(a){1,}/" "^(a){1,}" nil nil nil nil "bcd" nil nil nil)
(540 "\"abc\" =~ /^(a){1,}/" "^(a){1,}" nil nil nil nil "abc" nil "a" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(541 "\"aab\" =~ /^(a){1,}/" "^(a){1,}" nil nil nil nil "aab" nil "aa" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(542 "\"aaa\" =~ /^(a){1,}/" "^(a){1,}" nil nil nil nil "aaa" nil "aaa" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(543 "\"aaaaaaaa\" =~ /^(a){1,}/" "^(a){1,}" nil nil nil nil "aaaaaaaa" nil "aaaaaaaa" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(544 "\"borfle\\nbib.gif\\nno\" =~ /.*\\.gif/" ".*\\.gif" nil nil nil nil "borfle
bib.gif
no" nil "bib.gif" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(545 "\"borfle\\nbib.gif\\nno\" =~ /.{0,}\\.gif/" ".{0,}\\.gif" nil nil nil nil "borfle
bib.gif
no" nil "bib.gif" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(546 "\"borfle\\nbib.gif\\nno\" =~ /.*\\.gif/m" ".*\\.gif" nil t nil nil "borfle
bib.gif
no" nil "bib.gif" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(547 "\"borfle\\nbib.gif\\nno\" =~ /.*\\.gif/s" ".*\\.gif" nil nil t nil "borfle
bib.gif
no" nil "borfle
bib.gif" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(548 "\"borfle\\nbib.gif\\nno\" =~ /.*\\.gif/ms" ".*\\.gif" nil t t nil "borfle
bib.gif
no" nil "borfle
bib.gif" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(549 "\"borfle\\nbib.gif\\nno\" =~ /.*$/" ".*$" nil nil nil nil "borfle
bib.gif
no" nil "no" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(550 "\"borfle\\nbib.gif\\nno\" =~ /.*$/m" ".*$" nil t nil nil "borfle
bib.gif
no" nil "borfle" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(551 "\"borfle\\nbib.gif\\nno\" =~ /.*$/s" ".*$" nil nil t nil "borfle
bib.gif
no" nil "borfle
bib.gif
no" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(552 "\"borfle\\nbib.gif\\nno\" =~ /.*$/ms" ".*$" nil t t nil "borfle
bib.gif
no" nil "borfle
bib.gif
no" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(553 "\"borfle\\nbib.gif\\nno\\n\" =~ /.*$/" ".*$" nil nil nil nil "borfle
bib.gif
no
" nil "no" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(554 "\"borfle\\nbib.gif\\nno\\n\" =~ /.*$/m" ".*$" nil t nil nil "borfle
bib.gif
no
" nil "borfle" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(555 "\"borfle\\nbib.gif\\nno\\n\" =~ /.*$/s" ".*$" nil nil t nil "borfle
bib.gif
no
" nil "borfle
bib.gif
no
" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(556 "\"borfle\\nbib.gif\\nno\\n\" =~ /.*$/ms" ".*$" nil t t nil "borfle
bib.gif
no
" nil "borfle
bib.gif
no
" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(557 "\"abcde\\n1234Xyz\" =~ /(.*X|^B)/" "(.*X|^B)" nil nil nil nil "abcde
1234Xyz" nil "1234X" ("1234X" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(558 "\"BarFoo\" =~ /(.*X|^B)/" "(.*X|^B)" nil nil nil nil "BarFoo" nil "B" ("B" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(559 "\"abcde\\nBar\" =~ /(.*X|^B)/" "(.*X|^B)" nil nil nil nil "abcde
Bar" nil nil nil)
(560 "\"abcde\\n1234Xyz\" =~ /(.*X|^B)/m" "(.*X|^B)" nil t nil nil "abcde
1234Xyz" nil "1234X" ("1234X" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(561 "\"BarFoo\" =~ /(.*X|^B)/m" "(.*X|^B)" nil t nil nil "BarFoo" nil "B" ("B" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(562 "\"abcde\\nBar\" =~ /(.*X|^B)/m" "(.*X|^B)" nil t nil nil "abcde
Bar" nil "B" ("B" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(563 "\"abcde\\n1234Xyz\" =~ /(.*X|^B)/s" "(.*X|^B)" nil nil t nil "abcde
1234Xyz" nil "abcde
1234X" ("abcde
1234X" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(564 "\"BarFoo\" =~ /(.*X|^B)/s" "(.*X|^B)" nil nil t nil "BarFoo" nil "B" ("B" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(565 "\"abcde\\nBar\" =~ /(.*X|^B)/s" "(.*X|^B)" nil nil t nil "abcde
Bar" nil nil nil)
(566 "\"abcde\\n1234Xyz\" =~ /(.*X|^B)/ms" "(.*X|^B)" nil t t nil "abcde
1234Xyz" nil "abcde
1234X" ("abcde
1234X" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(567 "\"BarFoo\" =~ /(.*X|^B)/ms" "(.*X|^B)" nil t t nil "BarFoo" nil "B" ("B" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(568 "\"abcde\\nBar\" =~ /(.*X|^B)/ms" "(.*X|^B)" nil t t nil "abcde
Bar" nil "B" ("B" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(569 "\"abcde\\n1234Xyz\" =~ /(?s)(.*X|^B)/" "(?s)(.*X|^B)" nil nil nil nil "abcde
1234Xyz" nil "abcde
1234X" ("abcde
1234X" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(570 "\"BarFoo\" =~ /(?s)(.*X|^B)/" "(?s)(.*X|^B)" nil nil nil nil "BarFoo" nil "B" ("B" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(571 "\"abcde\\nBar\" =~ /(?s)(.*X|^B)/" "(?s)(.*X|^B)" nil nil nil nil "abcde
Bar" nil nil nil)
(572 "\"abcde\\n1234Xyz\" =~ /(?s:.*X|^B)/" "(?s:.*X|^B)" nil nil nil nil "abcde
1234Xyz" nil "abcde
1234X" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(573 "\"BarFoo\" =~ /(?s:.*X|^B)/" "(?s:.*X|^B)" nil nil nil nil "BarFoo" nil "B" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(574 "\"abcde\\nBar\" =~ /(?s:.*X|^B)/" "(?s:.*X|^B)" nil nil nil nil "abcde
Bar" nil nil nil)
(575 "\"abc\\nB\" =~ /^.*B/" "^.*B" nil nil nil nil "abc
B" nil nil nil)
(576 "\"abc\\nB\" =~ /(?s)^.*B/" "(?s)^.*B" nil nil nil nil "abc
B" nil "abc
B" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(577 "\"abc\\nB\" =~ /(?m)^.*B/" "(?m)^.*B" nil nil nil nil "abc
B" nil "B" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(578 "\"abc\\nB\" =~ /(?ms)^.*B/" "(?ms)^.*B" nil nil nil nil "abc
B" nil "abc
B" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(579 "\"abc\\nB\" =~ /(?ms)^B/" "(?ms)^B" nil nil nil nil "abc
B" nil "B" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(580 "\"B\\n\" =~ /(?s)B$/" "(?s)B$" nil nil nil nil "B
" nil "B" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(581 "\"123456654321\" =~ /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/" "^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" nil nil nil nil "123456654321" nil "123456654321" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(582 "\"123456654321\" =~ /^\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d/" "^\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d" nil nil nil nil "123456654321" nil "123456654321" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(583 "\"123456654321\" =~ /^[\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d]/" "^[\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d]" nil nil nil nil "123456654321" nil "123456654321" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(584 "\"abcabcabcabc\" =~ /^[abc]{12}/" "^[abc]{12}" nil nil nil nil "abcabcabcabc" nil "abcabcabcabc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(585 "\"abcabcabcabc\" =~ /^[a-c]{12}/" "^[a-c]{12}" nil nil nil nil "abcabcabcabc" nil "abcabcabcabc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(586 "\"abcabcabcabc\" =~ /^(a|b|c){12}/" "^(a|b|c){12}" nil nil nil nil "abcabcabcabc" nil "abcabcabcabc" ("c" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(587 "\"n\" =~ /^[abcdefghijklmnopqrstuvwxy0123456789]/" "^[abcdefghijklmnopqrstuvwxy0123456789]" nil nil nil nil "n" nil "n" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(588 "\"z\" =~ /^[abcdefghijklmnopqrstuvwxy0123456789]/" "^[abcdefghijklmnopqrstuvwxy0123456789]" nil nil nil nil "z" nil nil nil)
(589 "\"abcd\" =~ /abcde{0,0}/" "abcde{0,0}" nil nil nil nil "abcd" nil "abcd" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(590 "\"abce\" =~ /abcde{0,0}/" "abcde{0,0}" nil nil nil nil "abce" nil nil nil)
(591 "\"abe\" =~ /ab[cd]{0,0}e/" "ab[cd]{0,0}e" nil nil nil nil "abe" nil "abe" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(592 "\"abcde\" =~ /ab[cd]{0,0}e/" "ab[cd]{0,0}e" nil nil nil nil "abcde" nil nil nil)
(593 "\"abd\" =~ /ab(c){0,0}d/" "ab(c){0,0}d" nil nil nil nil "abd" nil "abd" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(594 "\"abcd\" =~ /ab(c){0,0}d/" "ab(c){0,0}d" nil nil nil nil "abcd" nil nil nil)
(595 "\"a\" =~ /a(b*)/" "a(b*)" nil nil nil nil "a" nil "a" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(596 "\"ab\" =~ /a(b*)/" "a(b*)" nil nil nil nil "ab" nil "ab" ("b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(597 "\"abbbb\" =~ /a(b*)/" "a(b*)" nil nil nil nil "abbbb" nil "abbbb" ("bbbb" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(598 "\"bbbbb\" =~ /a(b*)/" "a(b*)" nil nil nil nil "bbbbb" nil nil nil)
(599 "\"abe\" =~ /ab\\d{0}e/" "ab\\d{0}e" nil nil nil nil "abe" nil "abe" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(600 "\"ab1e\" =~ /ab\\d{0}e/" "ab\\d{0}e" nil nil nil nil "ab1e" nil nil nil)
(601 "\"the \\\"quick\\\" brown fox\" =~ /\"([^\\\\\"]+|\\\\.)*\"/" "\"([^\\\\\"]+|\\\\.)*\"" nil nil nil nil "the \"quick\" brown fox" nil "\"quick\"" ("quick" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(602 "\"\\\"the \\\\\\\"quick\\\\\\\" brown fox\\\"\" =~ /\"([^\\\\\"]+|\\\\.)*\"/" "\"([^\\\\\"]+|\\\\.)*\"" nil nil nil nil "\"the \\\"quick\\\" brown fox\"" nil "\"the \\\"quick\\\" brown fox\"" (" brown fox" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(603 "\"abc\" =~ /.*?/" ".*?" nil nil nil nil "abc" nil "" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(604 "\"abc\" =~ /\\b/" "\\b" nil nil nil nil "abc" nil "" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(605 "\"abc\" =~ /\\b/" "\\b" nil nil nil nil "abc" nil "" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(606 "\"abc\" =~ /(?#)/" "" nil nil nil nil "abc" nil "" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(607 "\"<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>\" =~ /<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" "<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>" t nil t nil "<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>" nil "<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>" (" BGCOLOR='#DBE9E9'" " align=left valign=top" "43." "<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)" "" "" nil " align=left valign=top" "Lega lstaff.com" " align=left valign=top" "CA - Statewide" nil nil nil nil nil))
(608 "\"acb\" =~ /a[^a]b/" "a[^a]b" nil nil nil nil "acb" nil "acb" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(609 "\"a\\nb\" =~ /a[^a]b/" "a[^a]b" nil nil nil nil "a
b" nil "a
b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(610 "\"acb\" =~ /a.b/" "a.b" nil nil nil nil "acb" nil "acb" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(611 "\"a\\nb\" =~ /a.b/" "a.b" nil nil nil nil "a
b" nil nil nil)
(612 "\"acb\" =~ /a[^a]b/s" "a[^a]b" nil nil t nil "acb" nil "acb" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(613 "\"a\\nb\" =~ /a[^a]b/s" "a[^a]b" nil nil t nil "a
b" nil "a
b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(614 "\"acb\" =~ /a.b/s" "a.b" nil nil t nil "acb" nil "acb" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(615 "\"a\\nb\" =~ /a.b/s" "a.b" nil nil t nil "a
b" nil "a
b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(616 "\"bac\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "bac" nil "bac" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(617 "\"bbac\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "bbac" nil "bbac" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(618 "\"bbbac\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "bbbac" nil "bbbac" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(619 "\"bbbbac\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "bbbbac" nil "bbbbac" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(620 "\"bbbbbac\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "bbbbbac" nil "bbbbbac" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(621 "\"bac\" =~ /^(b+|a){1,2}?c/" "^(b+|a){1,2}?c" nil nil nil nil "bac" nil "bac" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(622 "\"bbac\" =~ /^(b+|a){1,2}?c/" "^(b+|a){1,2}?c" nil nil nil nil "bbac" nil "bbac" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(623 "\"bbbac\" =~ /^(b+|a){1,2}?c/" "^(b+|a){1,2}?c" nil nil nil nil "bbbac" nil "bbbac" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(624 "\"bbbbac\" =~ /^(b+|a){1,2}?c/" "^(b+|a){1,2}?c" nil nil nil nil "bbbbac" nil "bbbbac" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(625 "\"bbbbbac\" =~ /^(b+|a){1,2}?c/" "^(b+|a){1,2}?c" nil nil nil nil "bbbbbac" nil "bbbbbac" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(626 "\"x\\nb\\n\" =~ /(?!\\A)x/m" "(?!\\A)x" nil t nil nil "x
b
" nil nil nil)
(627 "\"a\\bx\\n\" =~ /(?!\\A)x/m" "(?!\\A)x" nil t nil nil ("a" 8 "x" 10) nil "x" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(628 "\"\\0{ab}\" =~ /\\x0{ab}/" "\\x0{ab}" nil nil nil nil ("" 0 "{ab}") nil ("" 0 "{ab}") (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(629 "\"CD\" =~ /(A|B)*?CD/" "(A|B)*?CD" nil nil nil nil "CD" nil "CD" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(630 "\"CD\" =~ /(A|B)*CD/" "(A|B)*CD" nil nil nil nil "CD" nil "CD" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(631 "\"ABABAB\" =~ /(AB)*?\\1/" "(AB)*?\\1" nil nil nil nil "ABABAB" nil "ABAB" ("AB" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(632 "\"ABABAB\" =~ /(AB)*\\1/" "(AB)*\\1" nil nil nil nil "ABABAB" nil "ABABAB" ("AB" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(633 "\"doesn't matter\" =~ /(/" "(" nil nil nil nil "doesn't matter" t nil nil)
(634 "\"doesn't matter\" =~ /(x)\\2/" "(x)\\2" nil nil nil nil "doesn't matter" t nil nil)
(635 "\"aaaaaaaaaac\" =~ /((a{0,5}){0,5}){0,5}[c]/" "((a{0,5}){0,5}){0,5}[c]" nil nil nil nil "aaaaaaaaaac" nil "aaaaaaaaaac" ("" "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(636 "\"aaaaaaaaaa\" =~ /((a{0,5}){0,5}){0,5}[c]/" "((a{0,5}){0,5}){0,5}[c]" nil nil nil nil "aaaaaaaaaa" nil nil nil)
(637 "\"aaaaaaaaaac\" =~ /((a{0,5}){0,5})*[c]/" "((a{0,5}){0,5})*[c]" nil nil nil nil "aaaaaaaaaac" nil "aaaaaaaaaac" ("" "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(638 "\"aaaaaaaaaa\" =~ /((a{0,5}){0,5})*[c]/" "((a{0,5}){0,5})*[c]" nil nil nil nil "aaaaaaaaaa" nil nil nil)
(639 "\"a\" =~ /(\\b)*a/" "(\\b)*a" nil nil nil nil "a" nil "a" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(640 "\"ab\" =~ /(a)*b/" "(a)*b" nil nil nil nil "ab" nil "ab" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(641 "\"ab\" =~ /(a|)*b/" "(a|)*b" nil nil nil nil "ab" nil "ab" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(642 "\"b\" =~ /(a|)*b/" "(a|)*b" nil nil nil nil "b" nil "b" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(643 "\"x\" =~ /(a|)*b/" "(a|)*b" nil nil nil nil "x" nil nil nil)
(644 "\"abab\" =~ /^(?:(a)|(b))*\\1\\2$/" "^(?:(a)|(b))*\\1\\2$" nil nil nil nil "abab" nil "abab" ("a" "b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(645 "\"abcxabcydef\" =~ /abc[^x]def/" "abc[^x]def" nil nil nil nil "abcxabcydef" nil "abcydef" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(646 "\"aax\" =~ /^(a|\\1x)*$/" "^(a|\\1x)*$" nil nil nil nil "aax" nil "aax" ("ax" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(647 "\"aaxa\" =~ /^(a|\\1x)*$/" "^(a|\\1x)*$" nil nil nil nil "aaxa" nil "aaxa" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(648 "\"@{['']}\" =~ /(?#)/" "" nil nil nil nil "" nil "" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(649 "\"ab\" =~ /^(?:(a)|(b))*$/" "^(?:(a)|(b))*$" nil nil nil nil "ab" nil "ab" ("a" "b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(650 "\"a\" =~ /[\\0]/" "[\\0]" nil nil nil nil "a" nil nil nil)
(651 "\"\\0\" =~ /[\\0]/" "[\\0]" nil nil nil nil ("" 0) nil ("" 0) (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(652 "\"a\" =~ /[\\1]/" "[\\1]" nil nil nil nil "a" nil nil nil)
(653 "\"\\1\" =~ /[\\1]/" "[\\1]" nil nil nil nil ("" 1) nil ("" 1) (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(654 "\"doesn't matter\" =~ /\\10()()()()()()()()()/" "\\10()()()()()()()()()" nil nil nil nil "doesn't matter" nil nil nil)
(655 "\"a\" =~ /\\10()()()()()()()()()()/" "\\10()()()()()()()()()()" nil nil nil nil "a" nil nil nil)
(656 "\"ab\" =~ /a(?<)b/" "a(?<)b" nil nil nil nil "ab" nil "ab" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(657 "\"doesn't matter\" =~ /[]/" "[]" nil nil nil nil "doesn't matter" t nil nil)
(658 "\"doesn't matter\" =~ /[\\]/" "[\\]" nil nil nil nil "doesn't matter" t nil nil)
(659 "\"a\" =~ /()/" "()" nil nil nil nil "a" nil "" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(660 "\"x\" =~ /[\\x]/" "[\\x]" nil nil nil nil "x" nil nil nil)
(661 "\"\\0\" =~ /[\\x]/" "[\\x]" nil nil nil nil ("" 0) nil ("" 0) (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(662 "\"a\" =~ /((a)*)*/" "((a)*)*" nil nil nil nil "a" nil "a" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(663 "\"a\" =~ /()a\\1/" "()a\\1" nil nil nil nil "a" nil "a" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(664 "\"a\" =~ /a\\1()/" "a\\1()" nil nil nil nil "a" nil nil nil)
(665 "\"aaa\" =~ /a(?i)a(?-i)a/" "a(?i)a(?-i)a" nil nil nil nil "aaa" nil "aaa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(666 "\"aAa\" =~ /a(?i)a(?-i)a/" "a(?i)a(?-i)a" nil nil nil nil "aAa" nil "aAa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(667 "\"aAA\" =~ /a(?i)a(?-i)a/" "a(?i)a(?-i)a" nil nil nil nil "aAA" nil nil nil)
(668 "\"aaaaa\" =~ /a(?i)a(?-i)a(?i)a(?-i)a/" "a(?i)a(?-i)a(?i)a(?-i)a" nil nil nil nil "aaaaa" nil "aaaaa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(669 "\"aAaAa\" =~ /a(?i)a(?-i)a(?i)a(?-i)a/" "a(?i)a(?-i)a(?i)a(?-i)a" nil nil nil nil "aAaAa" nil "aAaAa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(670 "\"AaAaA\" =~ /a(?i)a(?-i)a(?i)a(?-i)a/" "a(?i)a(?-i)a(?i)a(?-i)a" nil nil nil nil "AaAaA" nil nil nil)
(671 "\"aAAAa\" =~ /a(?i)a(?-i)a(?i)a(?-i)a/" "a(?i)a(?-i)a(?i)a(?-i)a" nil nil nil nil "aAAAa" nil nil nil)
(672 "\"AaaaA\" =~ /a(?i)a(?-i)a(?i)a(?-i)a/" "a(?i)a(?-i)a(?i)a(?-i)a" nil nil nil nil "AaaaA" nil nil nil)
(673 "\"AAAAA\" =~ /a(?i)a(?-i)a(?i)a(?-i)a/" "a(?i)a(?-i)a(?i)a(?-i)a" nil nil nil nil "AAAAA" nil nil nil)
(674 "\"aaAAA\" =~ /a(?i)a(?-i)a(?i)a(?-i)a/" "a(?i)a(?-i)a(?i)a(?-i)a" nil nil nil nil "aaAAA" nil nil nil)
(675 "\"AAaaa\" =~ /a(?i)a(?-i)a(?i)a(?-i)a/" "a(?i)a(?-i)a(?i)a(?-i)a" nil nil nil nil "AAaaa" nil nil nil)
(676 "\"a\" =~ /\\x/" "\\x" nil nil nil nil "a" nil nil nil)
(677 "\"X\" =~ /\\x/" "\\x" nil nil nil nil "X" nil nil nil)
(678 "\"\\0\" =~ /\\x/" "\\x" nil nil nil nil ("" 0) nil ("" 0) (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(679 "\"a\" =~ /[a-c-e]/" "[a-c-e]" nil nil nil nil "a" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(680 "\"b\" =~ /[a-c-e]/" "[a-c-e]" nil nil nil nil "b" nil "b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(681 "\"d\" =~ /[a-c-e]/" "[a-c-e]" nil nil nil nil "d" nil nil nil)
(682 "\"-\" =~ /[a-c-e]/" "[a-c-e]" nil nil nil nil "-" nil "-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(683 "\"b\" =~ /[b-\\d]/" "[b-\\d]" nil nil nil nil "b" nil "b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(684 "\"c\" =~ /[b-\\d]/" "[b-\\d]" nil nil nil nil "c" nil nil nil)
(685 "\"d\" =~ /[b-\\d]/" "[b-\\d]" nil nil nil nil "d" nil nil nil)
(686 "\"-\" =~ /[b-\\d]/" "[b-\\d]" nil nil nil nil "-" nil "-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(687 "\"1\" =~ /[b-\\d]/" "[b-\\d]" nil nil nil nil "1" nil "1" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(688 "\"d\" =~ /[\\d-f]/" "[\\d-f]" nil nil nil nil "d" nil nil nil)
(689 "\"e\" =~ /[\\d-f]/" "[\\d-f]" nil nil nil nil "e" nil nil nil)
(690 "\"f\" =~ /[\\d-f]/" "[\\d-f]" nil nil nil nil "f" nil "f" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(691 "\"-\" =~ /[\\d-f]/" "[\\d-f]" nil nil nil nil "-" nil "-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(692 "\"1\" =~ /[\\d-f]/" "[\\d-f]" nil nil nil nil "1" nil "1" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(693 "\"doesn't matter\" =~ /[/" "[" nil nil nil nil "doesn't matter" t nil nil)
(694 "\"]\" =~ /]/" "]" nil nil nil nil "]" nil "]" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(695 "\"a\" =~ /]/" "]" nil nil nil nil "a" nil nil nil)
(696 "\"doesn't matter\" =~ /[]/" "[]" nil nil nil nil "doesn't matter" t nil nil)
(697 "\"-\" =~ /[-a-c]/" "[-a-c]" nil nil nil nil "-" nil "-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(698 "\"a\" =~ /[-a-c]/" "[-a-c]" nil nil nil nil "a" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(699 "\"b\" =~ /[-a-c]/" "[-a-c]" nil nil nil nil "b" nil "b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(700 "\"d\" =~ /[-a-c]/" "[-a-c]" nil nil nil nil "d" nil nil nil)
(701 "\"-\" =~ /[a-c-]/" "[a-c-]" nil nil nil nil "-" nil "-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(702 "\"a\" =~ /[a-c-]/" "[a-c-]" nil nil nil nil "a" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(703 "\"b\" =~ /[a-c-]/" "[a-c-]" nil nil nil nil "b" nil "b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(704 "\"d\" =~ /[a-c-]/" "[a-c-]" nil nil nil nil "d" nil nil nil)
(705 "\"a\" =~ /[-]/" "[-]" nil nil nil nil "a" nil nil nil)
(706 "\"-\" =~ /[-]/" "[-]" nil nil nil nil "-" nil "-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(707 "\"a\" =~ /[--]/" "[--]" nil nil nil nil "a" nil nil nil)
(708 "\"-\" =~ /[--]/" "[--]" nil nil nil nil "-" nil "-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(709 "\"a\" =~ /[---]/" "[---]" nil nil nil nil "a" nil nil nil)
(710 "\"-\" =~ /[---]/" "[---]" nil nil nil nil "-" nil "-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(711 "\"-\" =~ /[--b]/" "[--b]" nil nil nil nil "-" nil "-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(712 "\"a\" =~ /[--b]/" "[--b]" nil nil nil nil "a" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(713 "\"c\" =~ /[--b]/" "[--b]" nil nil nil nil "c" nil nil nil)
(714 "\"doesn't matter\" =~ /[b--]/" "[b--]" nil nil nil nil "doesn't matter" t nil nil)
(715 "\"a{\" =~ /a{/" "a{" nil nil nil nil "a{" nil "a{" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(716 "\"a{}\" =~ /a{}/" "a{}" nil nil nil nil "a{}" nil "a{}" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(717 "\"a{3\" =~ /a{3/" "a{3" nil nil nil nil "a{3" nil "a{3" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(718 "\"a{3,\" =~ /a{3,/" "a{3," nil nil nil nil "a{3," nil "a{3," (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(719 "\"a{3,3}\" =~ /a{3, 3}/" "a{3, 3}" nil nil nil nil "a{3,3}" nil nil nil)
(720 "\"a{3, 3}\" =~ /a{3, 3}/" "a{3, 3}" nil nil nil nil "a{3, 3}" nil "a{3, 3}" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(721 "\"aaa\" =~ /a{3, 3}/" "a{3, 3}" nil nil nil nil "aaa" nil nil nil)
(722 "\"a{3,3}\" =~ /a{3, 3}/x" "a{3, 3}" nil nil nil t "a{3,3}" nil "a{3,3}" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(723 "\"a{3, 3}\" =~ /a{3, 3}/x" "a{3, 3}" nil nil nil t "a{3, 3}" nil nil nil)
(724 "\"aaa\" =~ /a{3, 3}/x" "a{3, 3}" nil nil nil t "aaa" nil nil nil)
(725 "\"a{3,}\" =~ /a{3, }/" "a{3, }" nil nil nil nil "a{3,}" nil nil nil)
(726 "\"a{3, }\" =~ /a{3, }/" "a{3, }" nil nil nil nil "a{3, }" nil "a{3, }" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(727 "\"aaa\" =~ /a{3, }/" "a{3, }" nil nil nil nil "aaa" nil nil nil)
(728 "\"a{3,}\" =~ /a{3, }/x" "a{3, }" nil nil nil t "a{3,}" nil "a{3,}" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(729 "\"a{3, }\" =~ /a{3, }/x" "a{3, }" nil nil nil t "a{3, }" nil nil nil)
(730 "\"aaa\" =~ /a{3, }/x" "a{3, }" nil nil nil t "aaa" nil nil nil)
(731 "\"\\0 x\" =~ /\\x x/" "\\x x" nil nil nil nil ("" 0 " x") nil ("" 0 " x") (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(732 "\"\\0x\" =~ /\\x x/" "\\x x" nil nil nil nil ("" 0 "x") nil nil nil)
(733 "\"\\0 x\" =~ /\\x x/x" "\\x x" nil nil nil t ("" 0 " x") nil nil nil)
(734 "\"\\0x\" =~ /\\x x/x" "\\x x" nil nil nil t ("" 0 "x") nil ("" 0 "x") (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(735 "\"\\0003\" =~ /\\x 3/" "\\x 3" nil nil nil nil ("" 0 "3") nil nil nil)
(736 "\"\\000 3\" =~ /\\x 3/" "\\x 3" nil nil nil nil ("" 0 " 3") nil ("" 0 " 3") (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(737 "\"x3\" =~ /\\x 3/" "\\x 3" nil nil nil nil "x3" nil nil nil)
(738 "\"x 3\" =~ /\\x 3/" "\\x 3" nil nil nil nil "x 3" nil nil nil)
(739 "\"\\0003\" =~ /\\x 3/x" "\\x 3" nil nil nil t ("" 0 "3") nil ("" 0 "3") (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(740 "\"\\000 3\" =~ /\\x 3/x" "\\x 3" nil nil nil t ("" 0 " 3") nil nil nil)
(741 "\"x3\" =~ /\\x 3/x" "\\x 3" nil nil nil t "x3" nil nil nil)
(742 "\"x 3\" =~ /\\x 3/x" "\\x 3" nil nil nil t "x 3" nil nil nil)
(743 "\"a\" =~ /^a{ 1}$/" "^a{ 1}$" nil nil nil nil "a" nil nil nil)
(744 "\"a{ 1}\" =~ /^a{ 1}$/" "^a{ 1}$" nil nil nil nil "a{ 1}" nil "a{ 1}" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(745 "\"a{1}\" =~ /^a{ 1}$/" "^a{ 1}$" nil nil nil nil "a{1}" nil nil nil)
(746 "\"a\" =~ /^a{ 1}$/x" "^a{ 1}$" nil nil nil t "a" nil nil nil)
(747 "\"a{ 1}\" =~ /^a{ 1}$/x" "^a{ 1}$" nil nil nil t "a{ 1}" nil nil nil)
(748 "\"a{1}\" =~ /^a{ 1}$/x" "^a{ 1}$" nil nil nil t "a{1}" nil "a{1}" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(749 "\"{}\" =~ /{}/" "{}" nil nil nil nil "{}" nil "{}" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(750 "\"a\" =~ /{}/" "{}" nil nil nil nil "a" nil nil nil)
(751 "\"doesn't matter\" =~ /{1}/" "{1}" nil nil nil nil "doesn't matter" t nil nil)
(752 "\"doesn't matter\" =~ /*/" "*" nil nil nil nil "doesn't matter" t nil nil)
(753 "\"x\" =~ /|/" "|" nil nil nil nil "x" nil "" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(754 "\"\\0000\" =~ /\\0000/" "\\0000" nil nil nil nil ("" 0 "0") nil ("" 0 "0") (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(755 "\"ab\" =~ /a(?<)b/" "a(?<)b" nil nil nil nil "ab" nil "ab" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(756 "\"ab\" =~ /a(?i)b/" "a(?i)b" nil nil nil nil "ab" nil "ab" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(757 "\"aB\" =~ /a(?i)b/" "a(?i)b" nil nil nil nil "aB" nil "aB" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(758 "\"Ab\" =~ /a(?i)b/" "a(?i)b" nil nil nil nil "Ab" nil nil nil)
(759 "\"doesn't matter\" =~ /a(?i=a)/" "a(?i=a)" nil nil nil nil "doesn't matter" t nil nil)
(760 "\"aa\" =~ /a(?<=a){3000}a/" "a(?<=a){3000}a" nil nil nil nil "aa" nil "aa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(761 "\"xa\" =~ /a(?<=a){3000}a/" "a(?<=a){3000}a" nil nil nil nil "xa" nil nil nil)
(762 "\"ax\" =~ /a(?<=a){3000}a/" "a(?<=a){3000}a" nil nil nil nil "ax" nil nil nil)
(763 "\"aa\" =~ /a(?!=a){3000}a/" "a(?!=a){3000}a" nil nil nil nil "aa" nil "aa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(764 "\"ax\" =~ /a(?!=a){3000}a/" "a(?!=a){3000}a" nil nil nil nil "ax" nil nil nil)
(765 "\"xa\" =~ /a(?!=a){3000}a/" "a(?!=a){3000}a" nil nil nil nil "xa" nil nil nil)
(766 "\"aa\" =~ /a(){3000}a/" "a(){3000}a" nil nil nil nil "aa" nil "aa" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(767 "\"ax\" =~ /a(){3000}a/" "a(){3000}a" nil nil nil nil "ax" nil nil nil)
(768 "\"xa\" =~ /a(){3000}a/" "a(){3000}a" nil nil nil nil "xa" nil nil nil)
(769 "\"aa\" =~ /a(?:){3000}a/" "a(?:){3000}a" nil nil nil nil "aa" nil "aa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(770 "\"ax\" =~ /a(?:){3000}a/" "a(?:){3000}a" nil nil nil nil "ax" nil nil nil)
(771 "\"aa\" =~ /a(?<=a)*a/" "a(?<=a)*a" nil nil nil nil "aa" nil "aa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(772 "\"ax\" =~ /a(?<=a)*a/" "a(?<=a)*a" nil nil nil nil "ax" nil nil nil)
(773 "\"xa\" =~ /a(?<=a)*a/" "a(?<=a)*a" nil nil nil nil "xa" nil nil nil)
(774 "\"aa\" =~ /a(?!=a)*a/" "a(?!=a)*a" nil nil nil nil "aa" nil "aa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(775 "\"ax\" =~ /a(?!=a)*a/" "a(?!=a)*a" nil nil nil nil "ax" nil nil nil)
(776 "\"xa\" =~ /a(?!=a)*a/" "a(?!=a)*a" nil nil nil nil "xa" nil nil nil)
(777 "\"aa\" =~ /a()*a/" "a()*a" nil nil nil nil "aa" nil "aa" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(778 "\"ax\" =~ /a()*a/" "a()*a" nil nil nil nil "ax" nil nil nil)
(779 "\"xa\" =~ /a()*a/" "a()*a" nil nil nil nil "xa" nil nil nil)
(780 "\"aa\" =~ /a(?:)*a/" "a(?:)*a" nil nil nil nil "aa" nil "aa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(781 "\"ax\" =~ /a(?:)*a/" "a(?:)*a" nil nil nil nil "ax" nil nil nil)
(782 "\"xa\" =~ /a(?:)*a/" "a(?:)*a" nil nil nil nil "xa" nil nil nil)
(783 "\"aa\" =~ /x(?<=a)*a/" "x(?<=a)*a" nil nil nil nil "aa" nil nil nil)
(784 "\"xa\" =~ /x(?<=a)*a/" "x(?<=a)*a" nil nil nil nil "xa" nil "xa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(785 "\"ax\" =~ /x(?<=a)*a/" "x(?<=a)*a" nil nil nil nil "ax" nil nil nil)
(786 "\"aa\" =~ /a(?<=(a))*\\1/" "a(?<=(a))*\\1" nil nil nil nil "aa" nil "aa" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(787 "\"aa\" =~ /a(?<=(a))*?\\1/" "a(?<=(a))*?\\1" nil nil nil nil "aa" nil "aa" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(788 "\"aa\" =~ /(?=(a)\\1)*aa/" "(?=(a)\\1)*aa" nil nil nil nil "aa" nil "aa" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(789 "\"aaaaabbbbb\" =~ /^((a|b){2,5}){2}$/" "^((a|b){2,5}){2}$" nil nil nil nil "aaaaabbbbb" nil "aaaaabbbbb" ("bbbbb" "b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(790 "\"babc\" =~ /^(b*|ba){1,2}bc/" "^(b*|ba){1,2}bc" nil nil nil nil "babc" nil "babc" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(791 "\"bbabc\" =~ /^(b*|ba){1,2}bc/" "^(b*|ba){1,2}bc" nil nil nil nil "bbabc" nil "bbabc" ("ba" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(792 "\"bababc\" =~ /^(b*|ba){1,2}bc/" "^(b*|ba){1,2}bc" nil nil nil nil "bababc" nil "bababc" ("ba" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(793 "\"bababbc\" =~ /^(b*|ba){1,2}bc/" "^(b*|ba){1,2}bc" nil nil nil nil "bababbc" nil nil nil)
(794 "\"babababc\" =~ /^(b*|ba){1,2}bc/" "^(b*|ba){1,2}bc" nil nil nil nil "babababc" nil nil nil)
(795 "\"aaaaac\" =~ /^a{4,5}(?:c|a)c$/" "^a{4,5}(?:c|a)c$" nil nil nil nil "aaaaac" nil "aaaaac" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(796 "\"aaaaaac\" =~ /^a{4,5}(?:c|a)c$/" "^a{4,5}(?:c|a)c$" nil nil nil nil "aaaaaac" nil "aaaaaac" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(797 "\"aaaaac\" =~ /^(a|){4,5}(?:c|a)c$/" "^(a|){4,5}(?:c|a)c$" nil nil nil nil "aaaaac" nil "aaaaac" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(798 "\"aaaaaac\" =~ /^(a|){4,5}(?:c|a)c$/" "^(a|){4,5}(?:c|a)c$" nil nil nil nil "aaaaaac" nil "aaaaaac" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(799 "\"eeexabc\" =~ /(?m:^).abc$/" "(?m:^).abc$" nil nil nil nil "eeexabc" nil nil nil)
(800 "\"eee\\nxabc\" =~ /(?m:^).abc$/" "(?m:^).abc$" nil nil nil nil "eee
xabc" nil "xabc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(801 "\"abc\" =~ /(?m:^)abc/" "(?m:^)abc" nil nil nil nil "abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(802 "\"\\nabc\" =~ /(?m:^)abc/" "(?m:^)abc" nil nil nil nil "
abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(803 "\"abc\" =~
/^abc/" "^abc" nil nil nil nil "abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(804 "\"\\nabc\" =~
/^abc/" "^abc" nil nil nil nil "
abc" nil nil nil)
(805 "\"abc\" =~ /\\Aabc/" "\\Aabc" nil nil nil nil "abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(806 "\"\\nabc\" =~ /\\Aabc/" "\\Aabc" nil nil nil nil "
abc" nil nil nil)
(807 "\"foo\" =~ /(?<!bar)foo/" "(?<!bar)foo" nil nil nil nil "foo" nil "foo" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(808 "\"catfood\" =~ /(?<!bar)foo/" "(?<!bar)foo" nil nil nil nil "catfood" nil "foo" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(809 "\"arfootle\" =~ /(?<!bar)foo/" "(?<!bar)foo" nil nil nil nil "arfootle" nil "foo" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(810 "\"rfoosh\" =~ /(?<!bar)foo/" "(?<!bar)foo" nil nil nil nil "rfoosh" nil "foo" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(811 "\"barfoo\" =~ /(?<!bar)foo/" "(?<!bar)foo" nil nil nil nil "barfoo" nil nil nil)
(812 "\"towbarfoo\" =~ /(?<!bar)foo/" "(?<!bar)foo" nil nil nil nil "towbarfoo" nil nil nil)
(813 "\"catfood\" =~ /\\w{3}(?<!bar)foo/" "\\w{3}(?<!bar)foo" nil nil nil nil "catfood" nil "catfoo" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(814 "\"foo\" =~ /\\w{3}(?<!bar)foo/" "\\w{3}(?<!bar)foo" nil nil nil nil "foo" nil nil nil)
(815 "\"barfoo\" =~ /\\w{3}(?<!bar)foo/" "\\w{3}(?<!bar)foo" nil nil nil nil "barfoo" nil nil nil)
(816 "\"towbarfoo\" =~ /\\w{3}(?<!bar)foo/" "\\w{3}(?<!bar)foo" nil nil nil nil "towbarfoo" nil nil nil)
(817 "\"fooabar\" =~ /(?<=(foo)a)bar/" "(?<=(foo)a)bar" nil nil nil nil "fooabar" nil "bar" ("foo" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(818 "\"bar\" =~ /(?<=(foo)a)bar/" "(?<=(foo)a)bar" nil nil nil nil "bar" nil nil nil)
(819 "\"foobbar\" =~ /(?<=(foo)a)bar/" "(?<=(foo)a)bar" nil nil nil nil "foobbar" nil nil nil)
(820 "\"abc\" =~ /\\Aabc\\z/m" "\\Aabc\\z" nil t nil nil "abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(821 "\"abc\\n\" =~ /\\Aabc\\z/m" "\\Aabc\\z" nil t nil nil "abc
" nil nil nil)
(822 "\"qqq\\nabc\" =~ /\\Aabc\\z/m" "\\Aabc\\z" nil t nil nil "qqq
abc" nil nil nil)
(823 "\"abc\\nzzz\" =~ /\\Aabc\\z/m" "\\Aabc\\z" nil t nil nil "abc
zzz" nil nil nil)
(824 "\"qqq\\nabc\\nzzz\" =~ /\\Aabc\\z/m" "\\Aabc\\z" nil t nil nil "qqq
abc
zzz" nil nil nil)
(825 "\"/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/\" =~ \"(?>.*/)foo\"" "(?>.*/)foo" nil nil nil nil "/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/" nil nil nil)
(826 "\"/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo\" =~ \"(?>.*/)foo\"" "(?>.*/)foo" nil nil nil nil "/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo" nil "/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(827 "\"1.230003938\" =~ /(?>(\\.\\d\\d[1-9]?))\\d+/" "(?>(\\.\\d\\d[1-9]?))\\d+" nil nil nil nil "1.230003938" nil ".230003938" (".23" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(828 "\"1.875000282\" =~ /(?>(\\.\\d\\d[1-9]?))\\d+/" "(?>(\\.\\d\\d[1-9]?))\\d+" nil nil nil nil "1.875000282" nil ".875000282" (".875" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(829 "\"1.235\" =~ /(?>(\\.\\d\\d[1-9]?))\\d+/" "(?>(\\.\\d\\d[1-9]?))\\d+" nil nil nil nil "1.235" nil nil nil)
(830 "\"now is the time for all good men to come to the aid of the party\" =~ /^((?>\\w+)|(?>\\s+))*$/" "^((?>\\w+)|(?>\\s+))*$" nil nil nil nil "now is the time for all good men to come to the aid of the party" nil "now is the time for all good men to come to the aid of the party" ("party" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(831 "\"this is not a line with only words and spaces!\" =~ /^((?>\\w+)|(?>\\s+))*$/" "^((?>\\w+)|(?>\\s+))*$" nil nil nil nil "this is not a line with only words and spaces!" nil nil nil)
(832 "\"12345a\" =~ /(\\d+)(\\w)/" "(\\d+)(\\w)" nil nil nil nil "12345a" nil "12345a" ("12345" "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(833 "\"12345+\" =~ /(\\d+)(\\w)/" "(\\d+)(\\w)" nil nil nil nil "12345+" nil "12345" ("1234" "5" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(834 "\"12345a\" =~ /((?>\\d+))(\\w)/" "((?>\\d+))(\\w)" nil nil nil nil "12345a" nil "12345a" ("12345" "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(835 "\"12345+\" =~ /((?>\\d+))(\\w)/" "((?>\\d+))(\\w)" nil nil nil nil "12345+" nil nil nil)
(836 "\"aaab\" =~ /(?>a+)b/" "(?>a+)b" nil nil nil nil "aaab" nil "aaab" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(837 "\"aaab\" =~ /((?>a+)b)/" "((?>a+)b)" nil nil nil nil "aaab" nil "aaab" ("aaab" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(838 "\"aaab\" =~ /(?>(a+))b/" "(?>(a+))b" nil nil nil nil "aaab" nil "aaab" ("aaa" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(839 "\"aaabbbccc\" =~ /(?>b)+/" "(?>b)+" nil nil nil nil "aaabbbccc" nil "bbb" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(840 "\"aaabbbbccccd\" =~ /(?>a+|b+|c+)*c/" "(?>a+|b+|c+)*c" nil nil nil nil "aaabbbbccccd" nil "aaabbbbc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(841 "\"((abc(ade)ufh()()x\" =~ /((?>[^()]+)|\\([^()]*\\))+/" "((?>[^()]+)|\\([^()]*\\))+" nil nil nil nil "((abc(ade)ufh()()x" nil "abc(ade)ufh()()x" ("x" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(842 "\"(abc)\" =~ /\\(((?>[^()]+)|\\([^()]+\\))+\\)/" "\\(((?>[^()]+)|\\([^()]+\\))+\\)" nil nil nil nil "(abc)" nil "(abc)" ("abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(843 "\"(abc(def)xyz)\" =~ /\\(((?>[^()]+)|\\([^()]+\\))+\\)/" "\\(((?>[^()]+)|\\([^()]+\\))+\\)" nil nil nil nil "(abc(def)xyz)" nil "(abc(def)xyz)" ("xyz" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(844 "\"((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\" =~ /\\(((?>[^()]+)|\\([^()]+\\))+\\)/" "\\(((?>[^()]+)|\\([^()]+\\))+\\)" nil nil nil nil "((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" nil nil nil)
(845 "\"ab\" =~ /a(?-i)b/i" "a(?-i)b" t nil nil nil "ab" nil "ab" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(846 "\"Ab\" =~ /a(?-i)b/i" "a(?-i)b" t nil nil nil "Ab" nil "Ab" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(847 "\"aB\" =~ /a(?-i)b/i" "a(?-i)b" t nil nil nil "aB" nil nil nil)
(848 "\"AB\" =~ /a(?-i)b/i" "a(?-i)b" t nil nil nil "AB" nil nil nil)
(849 "\"a bcd e\" =~ /(a (?x)b c)d e/" "(a (?x)b c)d e" nil nil nil nil "a bcd e" nil "a bcd e" ("a bc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(850 "\"a b cd e\" =~ /(a (?x)b c)d e/" "(a (?x)b c)d e" nil nil nil nil "a b cd e" nil nil nil)
(851 "\"abcd e\" =~ /(a (?x)b c)d e/" "(a (?x)b c)d e" nil nil nil nil "abcd e" nil nil nil)
(852 "\"a bcde\" =~ /(a (?x)b c)d e/" "(a (?x)b c)d e" nil nil nil nil "a bcde" nil nil nil)
(853 "\"a bcde f\" =~ /(a b(?x)c d (?-x)e f)/" "(a b(?x)c d (?-x)e f)" nil nil nil nil "a bcde f" nil "a bcde f" ("a bcde f" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(854 "\"abcdef\" =~ /(a b(?x)c d (?-x)e f)/" "(a b(?x)c d (?-x)e f)" nil nil nil nil "abcdef" nil nil nil)
(855 "\"abc\" =~ /(a(?i)b)c/" "(a(?i)b)c" nil nil nil nil "abc" nil "abc" ("ab" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(856 "\"aBc\" =~ /(a(?i)b)c/" "(a(?i)b)c" nil nil nil nil "aBc" nil "aBc" ("aB" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(857 "\"abC\" =~ /(a(?i)b)c/" "(a(?i)b)c" nil nil nil nil "abC" nil nil nil)
(858 "\"aBC\" =~ /(a(?i)b)c/" "(a(?i)b)c" nil nil nil nil "aBC" nil nil nil)
(859 "\"Abc\" =~ /(a(?i)b)c/" "(a(?i)b)c" nil nil nil nil "Abc" nil nil nil)
(860 "\"ABc\" =~ /(a(?i)b)c/" "(a(?i)b)c" nil nil nil nil "ABc" nil nil nil)
(861 "\"ABC\" =~ /(a(?i)b)c/" "(a(?i)b)c" nil nil nil nil "ABC" nil nil nil)
(862 "\"AbC\" =~ /(a(?i)b)c/" "(a(?i)b)c" nil nil nil nil "AbC" nil nil nil)
(863 "\"abc\" =~ /a(?i:b)c/" "a(?i:b)c" nil nil nil nil "abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(864 "\"aBc\" =~ /a(?i:b)c/" "a(?i:b)c" nil nil nil nil "aBc" nil "aBc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(865 "\"ABC\" =~ /a(?i:b)c/" "a(?i:b)c" nil nil nil nil "ABC" nil nil nil)
(866 "\"abC\" =~ /a(?i:b)c/" "a(?i:b)c" nil nil nil nil "abC" nil nil nil)
(867 "\"aBC\" =~ /a(?i:b)c/" "a(?i:b)c" nil nil nil nil "aBC" nil nil nil)
(868 "\"aBc\" =~ /a(?i:b)*c/" "a(?i:b)*c" nil nil nil nil "aBc" nil "aBc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(869 "\"aBBc\" =~ /a(?i:b)*c/" "a(?i:b)*c" nil nil nil nil "aBBc" nil "aBBc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(870 "\"aBC\" =~ /a(?i:b)*c/" "a(?i:b)*c" nil nil nil nil "aBC" nil nil nil)
(871 "\"aBBC\" =~ /a(?i:b)*c/" "a(?i:b)*c" nil nil nil nil "aBBC" nil nil nil)
(872 "\"abcd\" =~ /a(?=b(?i)c)\\w\\wd/" "a(?=b(?i)c)\\w\\wd" nil nil nil nil "abcd" nil "abcd" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(873 "\"abCd\" =~ /a(?=b(?i)c)\\w\\wd/" "a(?=b(?i)c)\\w\\wd" nil nil nil nil "abCd" nil "abCd" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(874 "\"aBCd\" =~ /a(?=b(?i)c)\\w\\wd/" "a(?=b(?i)c)\\w\\wd" nil nil nil nil "aBCd" nil nil nil)
(875 "\"abcD\" =~ /a(?=b(?i)c)\\w\\wd/" "a(?=b(?i)c)\\w\\wd" nil nil nil nil "abcD" nil nil nil)
(876 "\"more than million\" =~ /(?s-i:more.*than).*million/i" "(?s-i:more.*than).*million" t nil nil nil "more than million" nil "more than million" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(877 "\"more than MILLION\" =~ /(?s-i:more.*than).*million/i" "(?s-i:more.*than).*million" t nil nil nil "more than MILLION" nil "more than MILLION" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(878 "\"more \\n than Million\" =~ /(?s-i:more.*than).*million/i" "(?s-i:more.*than).*million" t nil nil nil "more
than Million" nil "more
than Million" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(879 "\"MORE THAN MILLION\" =~ /(?s-i:more.*than).*million/i" "(?s-i:more.*than).*million" t nil nil nil "MORE THAN MILLION" nil nil nil)
(880 "\"more \\n than \\n million\" =~ /(?s-i:more.*than).*million/i" "(?s-i:more.*than).*million" t nil nil nil "more
than
million" nil nil nil)
(881 "\"more than million\" =~ /(?:(?s-i)more.*than).*million/i" "(?:(?s-i)more.*than).*million" t nil nil nil "more than million" nil "more than million" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(882 "\"more than MILLION\" =~ /(?:(?s-i)more.*than).*million/i" "(?:(?s-i)more.*than).*million" t nil nil nil "more than MILLION" nil "more than MILLION" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(883 "\"more \\n than Million\" =~ /(?:(?s-i)more.*than).*million/i" "(?:(?s-i)more.*than).*million" t nil nil nil "more
than Million" nil "more
than Million" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(884 "\"MORE THAN MILLION\" =~ /(?:(?s-i)more.*than).*million/i" "(?:(?s-i)more.*than).*million" t nil nil nil "MORE THAN MILLION" nil nil nil)
(885 "\"more \\n than \\n million\" =~ /(?:(?s-i)more.*than).*million/i" "(?:(?s-i)more.*than).*million" t nil nil nil "more
than
million" nil nil nil)
(886 "\"abc\" =~ /(?>a(?i)b+)+c/" "(?>a(?i)b+)+c" nil nil nil nil "abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(887 "\"aBbc\" =~ /(?>a(?i)b+)+c/" "(?>a(?i)b+)+c" nil nil nil nil "aBbc" nil "aBbc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(888 "\"aBBc\" =~ /(?>a(?i)b+)+c/" "(?>a(?i)b+)+c" nil nil nil nil "aBBc" nil "aBBc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(889 "\"Abc\" =~ /(?>a(?i)b+)+c/" "(?>a(?i)b+)+c" nil nil nil nil "Abc" nil nil nil)
(890 "\"abAb\" =~ /(?>a(?i)b+)+c/" "(?>a(?i)b+)+c" nil nil nil nil "abAb" nil nil nil)
(891 "\"abbC\" =~ /(?>a(?i)b+)+c/" "(?>a(?i)b+)+c" nil nil nil nil "abbC" nil nil nil)
(892 "\"abc\" =~ /(?=a(?i)b)\\w\\wc/" "(?=a(?i)b)\\w\\wc" nil nil nil nil "abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(893 "\"aBc\" =~ /(?=a(?i)b)\\w\\wc/" "(?=a(?i)b)\\w\\wc" nil nil nil nil "aBc" nil "aBc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(894 "\"Ab\" =~ /(?=a(?i)b)\\w\\wc/" "(?=a(?i)b)\\w\\wc" nil nil nil nil "Ab" nil nil nil)
(895 "\"abC\" =~ /(?=a(?i)b)\\w\\wc/" "(?=a(?i)b)\\w\\wc" nil nil nil nil "abC" nil nil nil)
(896 "\"aBC\" =~ /(?=a(?i)b)\\w\\wc/" "(?=a(?i)b)\\w\\wc" nil nil nil nil "aBC" nil nil nil)
(897 "\"abxxc\" =~ /(?<=a(?i)b)(\\w\\w)c/" "(?<=a(?i)b)(\\w\\w)c" nil nil nil nil "abxxc" nil "xxc" ("xx" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(898 "\"aBxxc\" =~ /(?<=a(?i)b)(\\w\\w)c/" "(?<=a(?i)b)(\\w\\w)c" nil nil nil nil "aBxxc" nil "xxc" ("xx" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(899 "\"Abxxc\" =~ /(?<=a(?i)b)(\\w\\w)c/" "(?<=a(?i)b)(\\w\\w)c" nil nil nil nil "Abxxc" nil nil nil)
(900 "\"ABxxc\" =~ /(?<=a(?i)b)(\\w\\w)c/" "(?<=a(?i)b)(\\w\\w)c" nil nil nil nil "ABxxc" nil nil nil)
(901 "\"abxxC\" =~ /(?<=a(?i)b)(\\w\\w)c/" "(?<=a(?i)b)(\\w\\w)c" nil nil nil nil "abxxC" nil nil nil)
(902 "\"aA\" =~ /(?:(a)|b)(?(1)A|B)/" "(?:(a)|b)(?(1)A|B)" nil nil nil nil "aA" nil "aA" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(903 "\"bB\" =~ /(?:(a)|b)(?(1)A|B)/" "(?:(a)|b)(?(1)A|B)" nil nil nil nil "bB" nil "bB" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(904 "\"aB\" =~ /(?:(a)|b)(?(1)A|B)/" "(?:(a)|b)(?(1)A|B)" nil nil nil nil "aB" nil nil nil)
(905 "\"bA\" =~ /(?:(a)|b)(?(1)A|B)/" "(?:(a)|b)(?(1)A|B)" nil nil nil nil "bA" nil nil nil)
(906 "\"aa\" =~ /^(a)?(?(1)a|b)+$/" "^(a)?(?(1)a|b)+$" nil nil nil nil "aa" nil "aa" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(907 "\"b\" =~ /^(a)?(?(1)a|b)+$/" "^(a)?(?(1)a|b)+$" nil nil nil nil "b" nil "b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(908 "\"bb\" =~ /^(a)?(?(1)a|b)+$/" "^(a)?(?(1)a|b)+$" nil nil nil nil "bb" nil "bb" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(909 "\"ab\" =~ /^(a)?(?(1)a|b)+$/" "^(a)?(?(1)a|b)+$" nil nil nil nil "ab" nil nil nil)
(910 "\"abc:\" =~ /^(?(?=abc)\\w{3}:|\\d\\d)$/" "^(?(?=abc)\\w{3}:|\\d\\d)$" nil nil nil nil "abc:" nil "abc:" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(911 "\"12\" =~ /^(?(?=abc)\\w{3}:|\\d\\d)$/" "^(?(?=abc)\\w{3}:|\\d\\d)$" nil nil nil nil "12" nil "12" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(912 "\"123\" =~ /^(?(?=abc)\\w{3}:|\\d\\d)$/" "^(?(?=abc)\\w{3}:|\\d\\d)$" nil nil nil nil "123" nil nil nil)
(913 "\"xyz\" =~ /^(?(?=abc)\\w{3}:|\\d\\d)$/" "^(?(?=abc)\\w{3}:|\\d\\d)$" nil nil nil nil "xyz" nil nil nil)
(914 "\"abc:\" =~ /^(?(?!abc)\\d\\d|\\w{3}:)$/" "^(?(?!abc)\\d\\d|\\w{3}:)$" nil nil nil nil "abc:" nil "abc:" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(915 "\"12\" =~ /^(?(?!abc)\\d\\d|\\w{3}:)$/" "^(?(?!abc)\\d\\d|\\w{3}:)$" nil nil nil nil "12" nil "12" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(916 "\"123\" =~ /^(?(?!abc)\\d\\d|\\w{3}:)$/" "^(?(?!abc)\\d\\d|\\w{3}:)$" nil nil nil nil "123" nil nil nil)
(917 "\"xyz\" =~ /^(?(?!abc)\\d\\d|\\w{3}:)$/" "^(?(?!abc)\\d\\d|\\w{3}:)$" nil nil nil nil "xyz" nil nil nil)
(918 "\"foobar\" =~ /(?(?<=foo)bar|cat)/" "(?(?<=foo)bar|cat)" nil nil nil nil "foobar" nil "bar" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(919 "\"cat\" =~ /(?(?<=foo)bar|cat)/" "(?(?<=foo)bar|cat)" nil nil nil nil "cat" nil "cat" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(920 "\"fcat\" =~ /(?(?<=foo)bar|cat)/" "(?(?<=foo)bar|cat)" nil nil nil nil "fcat" nil "cat" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(921 "\"focat\" =~ /(?(?<=foo)bar|cat)/" "(?(?<=foo)bar|cat)" nil nil nil nil "focat" nil "cat" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(922 "\"foocat\" =~ /(?(?<=foo)bar|cat)/" "(?(?<=foo)bar|cat)" nil nil nil nil "foocat" nil nil nil)
(923 "\"foobar\" =~ /(?(?<!foo)cat|bar)/" "(?(?<!foo)cat|bar)" nil nil nil nil "foobar" nil "bar" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(924 "\"cat\" =~ /(?(?<!foo)cat|bar)/" "(?(?<!foo)cat|bar)" nil nil nil nil "cat" nil "cat" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(925 "\"fcat\" =~ /(?(?<!foo)cat|bar)/" "(?(?<!foo)cat|bar)" nil nil nil nil "fcat" nil "cat" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(926 "\"focat\" =~ /(?(?<!foo)cat|bar)/" "(?(?<!foo)cat|bar)" nil nil nil nil "focat" nil "cat" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(927 "\"foocat\" =~ /(?(?<!foo)cat|bar)/" "(?(?<!foo)cat|bar)" nil nil nil nil "foocat" nil nil nil)
(928 "\"abcd\" =~ /( \\( )? [^()]+ (?(1) \\) |) /x" "( \\( )? [^()]+ (?(1) \\) |) " nil nil nil t "abcd" nil "abcd" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(929 "\"(abcd)\" =~ /( \\( )? [^()]+ (?(1) \\) |) /x" "( \\( )? [^()]+ (?(1) \\) |) " nil nil nil t "(abcd)" nil "(abcd)" ("(" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(930 "\"the quick (abcd) fox\" =~ /( \\( )? [^()]+ (?(1) \\) |) /x" "( \\( )? [^()]+ (?(1) \\) |) " nil nil nil t "the quick (abcd) fox" nil "the quick " (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(931 "\"(abcd\" =~ /( \\( )? [^()]+ (?(1) \\) |) /x" "( \\( )? [^()]+ (?(1) \\) |) " nil nil nil t "(abcd" nil "abcd" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(932 "\"abcd\" =~ /( \\( )? [^()]+ (?(1) \\) ) /x" "( \\( )? [^()]+ (?(1) \\) ) " nil nil nil t "abcd" nil "abcd" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(933 "\"(abcd)\" =~ /( \\( )? [^()]+ (?(1) \\) ) /x" "( \\( )? [^()]+ (?(1) \\) ) " nil nil nil t "(abcd)" nil "(abcd)" ("(" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(934 "\"the quick (abcd) fox\" =~ /( \\( )? [^()]+ (?(1) \\) ) /x" "( \\( )? [^()]+ (?(1) \\) ) " nil nil nil t "the quick (abcd) fox" nil "the quick " (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(935 "\"(abcd\" =~ /( \\( )? [^()]+ (?(1) \\) ) /x" "( \\( )? [^()]+ (?(1) \\) ) " nil nil nil t "(abcd" nil "abcd" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(936 "\"12\" =~ /^(?(2)a|(1)(2))+$/" "^(?(2)a|(1)(2))+$" nil nil nil nil "12" nil "12" ("1" "2" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(937 "\"12a\" =~ /^(?(2)a|(1)(2))+$/" "^(?(2)a|(1)(2))+$" nil nil nil nil "12a" nil "12a" ("1" "2" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(938 "\"12aa\" =~ /^(?(2)a|(1)(2))+$/" "^(?(2)a|(1)(2))+$" nil nil nil nil "12aa" nil "12aa" ("1" "2" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(939 "\"1234\" =~ /^(?(2)a|(1)(2))+$/" "^(?(2)a|(1)(2))+$" nil nil nil nil "1234" nil nil nil)
(940 "\"blah blah\" =~ /((?i)blah)\\s+\\1/" "((?i)blah)\\s+\\1" nil nil nil nil "blah blah" nil "blah blah" ("blah" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(941 "\"BLAH BLAH\" =~ /((?i)blah)\\s+\\1/" "((?i)blah)\\s+\\1" nil nil nil nil "BLAH BLAH" nil "BLAH BLAH" ("BLAH" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(942 "\"Blah Blah\" =~ /((?i)blah)\\s+\\1/" "((?i)blah)\\s+\\1" nil nil nil nil "Blah Blah" nil "Blah Blah" ("Blah" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(943 "\"blaH blaH\" =~ /((?i)blah)\\s+\\1/" "((?i)blah)\\s+\\1" nil nil nil nil "blaH blaH" nil "blaH blaH" ("blaH" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(944 "\"blah BLAH\" =~ /((?i)blah)\\s+\\1/" "((?i)blah)\\s+\\1" nil nil nil nil "blah BLAH" nil nil nil)
(945 "\"Blah blah\" =~ /((?i)blah)\\s+\\1/" "((?i)blah)\\s+\\1" nil nil nil nil "Blah blah" nil nil nil)
(946 "\"blaH blah\" =~ /((?i)blah)\\s+\\1/" "((?i)blah)\\s+\\1" nil nil nil nil "blaH blah" nil nil nil)
(947 "\"blah blah\" =~ /((?i)blah)\\s+(?i:\\1)/" "((?i)blah)\\s+(?i:\\1)" nil nil nil nil "blah blah" nil "blah blah" ("blah" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(948 "\"BLAH BLAH\" =~ /((?i)blah)\\s+(?i:\\1)/" "((?i)blah)\\s+(?i:\\1)" nil nil nil nil "BLAH BLAH" nil "BLAH BLAH" ("BLAH" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(949 "\"Blah Blah\" =~ /((?i)blah)\\s+(?i:\\1)/" "((?i)blah)\\s+(?i:\\1)" nil nil nil nil "Blah Blah" nil "Blah Blah" ("Blah" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(950 "\"blaH blaH\" =~ /((?i)blah)\\s+(?i:\\1)/" "((?i)blah)\\s+(?i:\\1)" nil nil nil nil "blaH blaH" nil "blaH blaH" ("blaH" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(951 "\"blah BLAH\" =~ /((?i)blah)\\s+(?i:\\1)/" "((?i)blah)\\s+(?i:\\1)" nil nil nil nil "blah BLAH" nil "blah BLAH" ("blah" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(952 "\"Blah blah\" =~ /((?i)blah)\\s+(?i:\\1)/" "((?i)blah)\\s+(?i:\\1)" nil nil nil nil "Blah blah" nil "Blah blah" ("Blah" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(953 "\"blaH blah\" =~ /((?i)blah)\\s+(?i:\\1)/" "((?i)blah)\\s+(?i:\\1)" nil nil nil nil "blaH blah" nil "blaH blah" ("blaH" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(954 "\"a\" =~ /(?>a*)*/" "(?>a*)*" nil nil nil nil "a" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(955 "\"aa\" =~ /(?>a*)*/" "(?>a*)*" nil nil nil nil "aa" nil "aa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(956 "\"aaaa\" =~ /(?>a*)*/" "(?>a*)*" nil nil nil nil "aaaa" nil "aaaa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(957 "\"abc\" =~ /(abc|)+/" "(abc|)+" nil nil nil nil "abc" nil "abc" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(958 "\"abcabc\" =~ /(abc|)+/" "(abc|)+" nil nil nil nil "abcabc" nil "abcabc" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(959 "\"abcabcabc\" =~ /(abc|)+/" "(abc|)+" nil nil nil nil "abcabcabc" nil "abcabcabc" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(960 "\"xyz\" =~ /(abc|)+/" "(abc|)+" nil nil nil nil "xyz" nil "" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(961 "\"a\" =~ /([a]*)*/" "([a]*)*" nil nil nil nil "a" nil "a" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(962 "\"aaaaa\" =~ /([a]*)*/" "([a]*)*" nil nil nil nil "aaaaa" nil "aaaaa" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(963 "\"a\" =~ /([ab]*)*/" "([ab]*)*" nil nil nil nil "a" nil "a" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(964 "\"b\" =~ /([ab]*)*/" "([ab]*)*" nil nil nil nil "b" nil "b" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(965 "\"ababab\" =~ /([ab]*)*/" "([ab]*)*" nil nil nil nil "ababab" nil "ababab" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(966 "\"aaaabcde\" =~ /([ab]*)*/" "([ab]*)*" nil nil nil nil "aaaabcde" nil "aaaab" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(967 "\"bbbb\" =~ /([ab]*)*/" "([ab]*)*" nil nil nil nil "bbbb" nil "bbbb" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(968 "\"b\" =~ /([^a]*)*/" "([^a]*)*" nil nil nil nil "b" nil "b" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(969 "\"bbbb\" =~ /([^a]*)*/" "([^a]*)*" nil nil nil nil "bbbb" nil "bbbb" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(970 "\"aaa\" =~ /([^a]*)*/" "([^a]*)*" nil nil nil nil "aaa" nil "" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(971 "\"cccc\" =~ /([^ab]*)*/" "([^ab]*)*" nil nil nil nil "cccc" nil "cccc" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(972 "\"abab\" =~ /([^ab]*)*/" "([^ab]*)*" nil nil nil nil "abab" nil "" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(973 "\"a\" =~ /([a]*?)*/" "([a]*?)*" nil nil nil nil "a" nil "" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(974 "\"aaaa\" =~ /([a]*?)*/" "([a]*?)*" nil nil nil nil "aaaa" nil "" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(975 "\"a\" =~ /([ab]*?)*/" "([ab]*?)*" nil nil nil nil "a" nil "" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(976 "\"b\" =~ /([ab]*?)*/" "([ab]*?)*" nil nil nil nil "b" nil "" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(977 "\"abab\" =~ /([ab]*?)*/" "([ab]*?)*" nil nil nil nil "abab" nil "" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(978 "\"baba\" =~ /([ab]*?)*/" "([ab]*?)*" nil nil nil nil "baba" nil "" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(979 "\"b\" =~ /([^a]*?)*/" "([^a]*?)*" nil nil nil nil "b" nil "" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(980 "\"bbbb\" =~ /([^a]*?)*/" "([^a]*?)*" nil nil nil nil "bbbb" nil "" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(981 "\"aaa\" =~ /([^a]*?)*/" "([^a]*?)*" nil nil nil nil "aaa" nil "" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(982 "\"c\" =~ /([^ab]*?)*/" "([^ab]*?)*" nil nil nil nil "c" nil "" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(983 "\"cccc\" =~ /([^ab]*?)*/" "([^ab]*?)*" nil nil nil nil "cccc" nil "" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(984 "\"baba\" =~ /([^ab]*?)*/" "([^ab]*?)*" nil nil nil nil "baba" nil "" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(985 "\"a\" =~ /(?>a*)*/" "(?>a*)*" nil nil nil nil "a" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(986 "\"aaabcde\" =~ /(?>a*)*/" "(?>a*)*" nil nil nil nil "aaabcde" nil "aaa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(987 "\"aaaaa\" =~ /((?>a*))*/" "((?>a*))*" nil nil nil nil "aaaaa" nil "aaaaa" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(988 "\"aabbaa\" =~ /((?>a*))*/" "((?>a*))*" nil nil nil nil "aabbaa" nil "aa" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(989 "\"aaaaa\" =~ /((?>a*?))*/" "((?>a*?))*" nil nil nil nil "aaaaa" nil "" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(990 "\"aabbaa\" =~ /((?>a*?))*/" "((?>a*?))*" nil nil nil nil "aabbaa" nil "" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(991 "\"12-sep-98\" =~ /(?(?=[^a-z]+[a-z]) \\d{2}-[a-z]{3}-\\d{2} | \\d{2}-\\d{2}-\\d{2} ) /x" "(?(?=[^a-z]+[a-z]) \\d{2}-[a-z]{3}-\\d{2} | \\d{2}-\\d{2}-\\d{2} ) " nil nil nil t "12-sep-98" nil "12-sep-98" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(992 "\"12-09-98\" =~ /(?(?=[^a-z]+[a-z]) \\d{2}-[a-z]{3}-\\d{2} | \\d{2}-\\d{2}-\\d{2} ) /x" "(?(?=[^a-z]+[a-z]) \\d{2}-[a-z]{3}-\\d{2} | \\d{2}-\\d{2}-\\d{2} ) " nil nil nil t "12-09-98" nil "12-09-98" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(993 "\"sep-12-98\" =~ /(?(?=[^a-z]+[a-z]) \\d{2}-[a-z]{3}-\\d{2} | \\d{2}-\\d{2}-\\d{2} ) /x" "(?(?=[^a-z]+[a-z]) \\d{2}-[a-z]{3}-\\d{2} | \\d{2}-\\d{2}-\\d{2} ) " nil nil nil t "sep-12-98" nil nil nil)
(994 "\"foobarfoo\" =~ /(?<=(foo))bar\\1/" "(?<=(foo))bar\\1" nil nil nil nil "foobarfoo" nil "barfoo" ("foo" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(995 "\"foobarfootling\" =~ /(?<=(foo))bar\\1/" "(?<=(foo))bar\\1" nil nil nil nil "foobarfootling" nil "barfoo" ("foo" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(996 "\"foobar\" =~ /(?<=(foo))bar\\1/" "(?<=(foo))bar\\1" nil nil nil nil "foobar" nil nil nil)
(997 "\"barfoo\" =~ /(?<=(foo))bar\\1/" "(?<=(foo))bar\\1" nil nil nil nil "barfoo" nil nil nil)
(998 "\"saturday\" =~ /(?i:saturday|sunday)/" "(?i:saturday|sunday)" nil nil nil nil "saturday" nil "saturday" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(999 "\"sunday\" =~ /(?i:saturday|sunday)/" "(?i:saturday|sunday)" nil nil nil nil "sunday" nil "sunday" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1000 "\"Saturday\" =~ /(?i:saturday|sunday)/" "(?i:saturday|sunday)" nil nil nil nil "Saturday" nil "Saturday" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1001 "\"Sunday\" =~ /(?i:saturday|sunday)/" "(?i:saturday|sunday)" nil nil nil nil "Sunday" nil "Sunday" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1002 "\"SATURDAY\" =~ /(?i:saturday|sunday)/" "(?i:saturday|sunday)" nil nil nil nil "SATURDAY" nil "SATURDAY" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1003 "\"SUNDAY\" =~ /(?i:saturday|sunday)/" "(?i:saturday|sunday)" nil nil nil nil "SUNDAY" nil "SUNDAY" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1004 "\"SunDay\" =~ /(?i:saturday|sunday)/" "(?i:saturday|sunday)" nil nil nil nil "SunDay" nil "SunDay" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1005 "\"abcx\" =~ /(a(?i)bc|BB)x/" "(a(?i)bc|BB)x" nil nil nil nil "abcx" nil "abcx" ("abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1006 "\"aBCx\" =~ /(a(?i)bc|BB)x/" "(a(?i)bc|BB)x" nil nil nil nil "aBCx" nil "aBCx" ("aBC" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1007 "\"bbx\" =~ /(a(?i)bc|BB)x/" "(a(?i)bc|BB)x" nil nil nil nil "bbx" nil "bbx" ("bb" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1008 "\"BBx\" =~ /(a(?i)bc|BB)x/" "(a(?i)bc|BB)x" nil nil nil nil "BBx" nil "BBx" ("BB" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1009 "\"abcX\" =~ /(a(?i)bc|BB)x/" "(a(?i)bc|BB)x" nil nil nil nil "abcX" nil nil nil)
(1010 "\"aBCX\" =~ /(a(?i)bc|BB)x/" "(a(?i)bc|BB)x" nil nil nil nil "aBCX" nil nil nil)
(1011 "\"bbX\" =~ /(a(?i)bc|BB)x/" "(a(?i)bc|BB)x" nil nil nil nil "bbX" nil nil nil)
(1012 "\"BBX\" =~ /(a(?i)bc|BB)x/" "(a(?i)bc|BB)x" nil nil nil nil "BBX" nil nil nil)
(1013 "\"ac\" =~ /^([ab](?i)[cd]|[ef])/" "^([ab](?i)[cd]|[ef])" nil nil nil nil "ac" nil "ac" ("ac" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1014 "\"aC\" =~ /^([ab](?i)[cd]|[ef])/" "^([ab](?i)[cd]|[ef])" nil nil nil nil "aC" nil "aC" ("aC" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1015 "\"bD\" =~ /^([ab](?i)[cd]|[ef])/" "^([ab](?i)[cd]|[ef])" nil nil nil nil "bD" nil "bD" ("bD" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1016 "\"elephant\" =~ /^([ab](?i)[cd]|[ef])/" "^([ab](?i)[cd]|[ef])" nil nil nil nil "elephant" nil "e" ("e" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1017 "\"Europe\" =~ /^([ab](?i)[cd]|[ef])/" "^([ab](?i)[cd]|[ef])" nil nil nil nil "Europe" nil "E" ("E" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1018 "\"frog\" =~ /^([ab](?i)[cd]|[ef])/" "^([ab](?i)[cd]|[ef])" nil nil nil nil "frog" nil "f" ("f" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1019 "\"France\" =~ /^([ab](?i)[cd]|[ef])/" "^([ab](?i)[cd]|[ef])" nil nil nil nil "France" nil "F" ("F" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1020 "\"Africa\" =~ /^([ab](?i)[cd]|[ef])/" "^([ab](?i)[cd]|[ef])" nil nil nil nil "Africa" nil nil nil)
(1021 "\"ab\" =~ /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/" "^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)" nil nil nil nil "ab" nil "ab" ("ab" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1022 "\"aBd\" =~ /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/" "^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)" nil nil nil nil "aBd" nil "aBd" ("aBd" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1023 "\"xy\" =~ /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/" "^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)" nil nil nil nil "xy" nil "xy" ("xy" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1024 "\"xY\" =~ /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/" "^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)" nil nil nil nil "xY" nil "xY" ("xY" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1025 "\"zebra\" =~ /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/" "^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)" nil nil nil nil "zebra" nil "z" ("z" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1026 "\"Zambesi\" =~ /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/" "^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)" nil nil nil nil "Zambesi" nil "Z" ("Z" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1027 "\"aCD\" =~ /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/" "^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)" nil nil nil nil "aCD" nil nil nil)
(1028 "\"XY\" =~ /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/" "^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)" nil nil nil nil "XY" nil nil nil)
(1029 "\"foo\\nbar\" =~ /(?<=foo\\n)^bar/m" "(?<=foo\\n)^bar" nil t nil nil "foo
bar" nil "bar" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1030 "\"bar\" =~ /(?<=foo\\n)^bar/m" "(?<=foo\\n)^bar" nil t nil nil "bar" nil nil nil)
(1031 "\"baz\\nbar\" =~ /(?<=foo\\n)^bar/m" "(?<=foo\\n)^bar" nil t nil nil "baz
bar" nil nil nil)
(1032 "\"barbaz\" =~ /(?<=(?<!foo)bar)baz/" "(?<=(?<!foo)bar)baz" nil nil nil nil "barbaz" nil "baz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1033 "\"barbarbaz\" =~ /(?<=(?<!foo)bar)baz/" "(?<=(?<!foo)bar)baz" nil nil nil nil "barbarbaz" nil "baz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1034 "\"koobarbaz\" =~ /(?<=(?<!foo)bar)baz/" "(?<=(?<!foo)bar)baz" nil nil nil nil "koobarbaz" nil "baz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1035 "\"baz\" =~ /(?<=(?<!foo)bar)baz/" "(?<=(?<!foo)bar)baz" nil nil nil nil "baz" nil nil nil)
(1036 "\"foobarbaz\" =~ /(?<=(?<!foo)bar)baz/" "(?<=(?<!foo)bar)baz" nil nil nil nil "foobarbaz" nil nil nil)
(1037 "\"a\" =~ /^(a\\1?){4}$/" "^(a\\1?){4}$" nil nil nil nil "a" nil nil nil)
(1038 "\"aa\" =~ /^(a\\1?){4}$/" "^(a\\1?){4}$" nil nil nil nil "aa" nil nil nil)
(1039 "\"aaa\" =~ /^(a\\1?){4}$/" "^(a\\1?){4}$" nil nil nil nil "aaa" nil nil nil)
(1040 "\"aaaa\" =~ /^(a\\1?){4}$/" "^(a\\1?){4}$" nil nil nil nil "aaaa" nil "aaaa" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1041 "\"aaaaa\" =~ /^(a\\1?){4}$/" "^(a\\1?){4}$" nil nil nil nil "aaaaa" nil "aaaaa" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1042 "\"aaaaaa\" =~ /^(a\\1?){4}$/" "^(a\\1?){4}$" nil nil nil nil "aaaaaa" nil "aaaaaa" ("aa" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1043 "\"aaaaaaa\" =~ /^(a\\1?){4}$/" "^(a\\1?){4}$" nil nil nil nil "aaaaaaa" nil "aaaaaaa" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1044 "\"aaaaaaaa\" =~ /^(a\\1?){4}$/" "^(a\\1?){4}$" nil nil nil nil "aaaaaaaa" nil nil nil)
(1045 "\"aaaaaaaaa\" =~ /^(a\\1?){4}$/" "^(a\\1?){4}$" nil nil nil nil "aaaaaaaaa" nil nil nil)
(1046 "\"aaaaaaaaaa\" =~ /^(a\\1?){4}$/" "^(a\\1?){4}$" nil nil nil nil "aaaaaaaaaa" nil "aaaaaaaaaa" ("aaaa" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1047 "\"aaaaaaaaaaa\" =~ /^(a\\1?){4}$/" "^(a\\1?){4}$" nil nil nil nil "aaaaaaaaaaa" nil nil nil)
(1048 "\"aaaaaaaaaaaa\" =~ /^(a\\1?){4}$/" "^(a\\1?){4}$" nil nil nil nil "aaaaaaaaaaaa" nil nil nil)
(1049 "\"aaaaaaaaaaaaa\" =~ /^(a\\1?){4}$/" "^(a\\1?){4}$" nil nil nil nil "aaaaaaaaaaaaa" nil nil nil)
(1050 "\"aaaaaaaaaaaaaa\" =~ /^(a\\1?){4}$/" "^(a\\1?){4}$" nil nil nil nil "aaaaaaaaaaaaaa" nil nil nil)
(1051 "\"aaaaaaaaaaaaaaa\" =~ /^(a\\1?){4}$/" "^(a\\1?){4}$" nil nil nil nil "aaaaaaaaaaaaaaa" nil nil nil)
(1052 "\"aaaaaaaaaaaaaaaa\" =~ /^(a\\1?){4}$/" "^(a\\1?){4}$" nil nil nil nil "aaaaaaaaaaaaaaaa" nil nil nil)
(1053 "\"a\" =~ /^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$/" "^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$" nil nil nil nil "a" nil nil nil)
(1054 "\"aa\" =~ /^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$/" "^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$" nil nil nil nil "aa" nil nil nil)
(1055 "\"aaa\" =~ /^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$/" "^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$" nil nil nil nil "aaa" nil nil nil)
(1056 "\"aaaa\" =~ /^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$/" "^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$" nil nil nil nil "aaaa" nil "aaaa" ("a" "a" "a" "a" nil nil nil nil nil nil nil nil nil nil nil nil))
(1057 "\"aaaaa\" =~ /^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$/" "^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$" nil nil nil nil "aaaaa" nil "aaaaa" ("a" "aa" "a" "a" nil nil nil nil nil nil nil nil nil nil nil nil))
(1058 "\"aaaaaa\" =~ /^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$/" "^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$" nil nil nil nil "aaaaaa" nil "aaaaaa" ("a" "aa" "a" "aa" nil nil nil nil nil nil nil nil nil nil nil nil))
(1059 "\"aaaaaaa\" =~ /^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$/" "^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$" nil nil nil nil "aaaaaaa" nil "aaaaaaa" ("a" "aa" "aaa" "a" nil nil nil nil nil nil nil nil nil nil nil nil))
(1060 "\"aaaaaaaa\" =~ /^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$/" "^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$" nil nil nil nil "aaaaaaaa" nil nil nil)
(1061 "\"aaaaaaaaa\" =~ /^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$/" "^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$" nil nil nil nil "aaaaaaaaa" nil nil nil)
(1062 "\"aaaaaaaaaa\" =~ /^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$/" "^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$" nil nil nil nil "aaaaaaaaaa" nil "aaaaaaaaaa" ("a" "aa" "aaa" "aaaa" nil nil nil nil nil nil nil nil nil nil nil nil))
(1063 "\"aaaaaaaaaaa\" =~ /^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$/" "^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$" nil nil nil nil "aaaaaaaaaaa" nil nil nil)
(1064 "\"aaaaaaaaaaaa\" =~ /^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$/" "^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$" nil nil nil nil "aaaaaaaaaaaa" nil nil nil)
(1065 "\"aaaaaaaaaaaaa\" =~ /^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$/" "^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$" nil nil nil nil "aaaaaaaaaaaaa" nil nil nil)
(1066 "\"aaaaaaaaaaaaaa\" =~ /^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$/" "^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$" nil nil nil nil "aaaaaaaaaaaaaa" nil nil nil)
(1067 "\"aaaaaaaaaaaaaaa\" =~ /^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$/" "^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$" nil nil nil nil "aaaaaaaaaaaaaaa" nil nil nil)
(1068 "\"aaaaaaaaaaaaaaaa\" =~ /^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$/" "^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$" nil nil nil nil "aaaaaaaaaaaaaaaa" nil nil nil)
(1069 "\"abc\" =~ /abc/" "abc" nil nil nil nil "abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1070 "\"xabcy\" =~ /abc/" "abc" nil nil nil nil "xabcy" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1071 "\"ababc\" =~ /abc/" "abc" nil nil nil nil "ababc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1072 "\"xbc\" =~ /abc/" "abc" nil nil nil nil "xbc" nil nil nil)
(1073 "\"axc\" =~ /abc/" "abc" nil nil nil nil "axc" nil nil nil)
(1074 "\"abx\" =~ /abc/" "abc" nil nil nil nil "abx" nil nil nil)
(1075 "\"abc\" =~ /ab*c/" "ab*c" nil nil nil nil "abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1076 "\"abc\" =~ /ab*bc/" "ab*bc" nil nil nil nil "abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1077 "\"abbc\" =~ /ab*bc/" "ab*bc" nil nil nil nil "abbc" nil "abbc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1078 "\"abbbbc\" =~ /ab*bc/" "ab*bc" nil nil nil nil "abbbbc" nil "abbbbc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1079 "\"abbbbc\" =~ /.{1}/" ".{1}" nil nil nil nil "abbbbc" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1080 "\"abbbbc\" =~ /.{3,4}/" ".{3,4}" nil nil nil nil "abbbbc" nil "abbb" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1081 "\"abbbbc\" =~ /ab{0,}bc/" "ab{0,}bc" nil nil nil nil "abbbbc" nil "abbbbc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1082 "\"abbc\" =~ /ab+bc/" "ab+bc" nil nil nil nil "abbc" nil "abbc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1083 "\"abc\" =~ /ab+bc/" "ab+bc" nil nil nil nil "abc" nil nil nil)
(1084 "\"abq\" =~ /ab+bc/" "ab+bc" nil nil nil nil "abq" nil nil nil)
(1085 "\"abbbbc\" =~ /ab+bc/" "ab+bc" nil nil nil nil "abbbbc" nil "abbbbc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1086 "\"abbbbc\" =~ /ab{1,}bc/" "ab{1,}bc" nil nil nil nil "abbbbc" nil "abbbbc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1087 "\"abbbbc\" =~ /ab{1,3}bc/" "ab{1,3}bc" nil nil nil nil "abbbbc" nil "abbbbc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1088 "\"abbbbc\" =~ /ab{3,4}bc/" "ab{3,4}bc" nil nil nil nil "abbbbc" nil "abbbbc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1089 "\"abq\" =~ /ab{4,5}bc/" "ab{4,5}bc" nil nil nil nil "abq" nil nil nil)
(1090 "\"abbbbc\" =~ /ab{4,5}bc/" "ab{4,5}bc" nil nil nil nil "abbbbc" nil nil nil)
(1091 "\"abbc\" =~ /ab?bc/" "ab?bc" nil nil nil nil "abbc" nil "abbc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1092 "\"abc\" =~ /ab?bc/" "ab?bc" nil nil nil nil "abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1093 "\"abc\" =~ /ab{0,1}bc/" "ab{0,1}bc" nil nil nil nil "abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1094 "\"abc\" =~ /ab?c/" "ab?c" nil nil nil nil "abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1095 "\"abc\" =~ /ab{0,1}c/" "ab{0,1}c" nil nil nil nil "abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1096 "\"abc\" =~ /^abc$/" "^abc$" nil nil nil nil "abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1097 "\"abbbbc\" =~ /^abc$/" "^abc$" nil nil nil nil "abbbbc" nil nil nil)
(1098 "\"abcc\" =~ /^abc$/" "^abc$" nil nil nil nil "abcc" nil nil nil)
(1099 "\"abcc\" =~ /^abc/" "^abc" nil nil nil nil "abcc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1100 "\"aabc\" =~ /abc$/" "abc$" nil nil nil nil "aabc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1101 "\"aabc\" =~ /abc$/" "abc$" nil nil nil nil "aabc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1102 "\"aabcd\" =~ /abc$/" "abc$" nil nil nil nil "aabcd" nil nil nil)
(1103 "\"abc\" =~ /^/" "^" nil nil nil nil "abc" nil "" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1104 "\"abc\" =~ /$/" "$" nil nil nil nil "abc" nil "" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1105 "\"abc\" =~ /a.c/" "a.c" nil nil nil nil "abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1106 "\"axc\" =~ /a.c/" "a.c" nil nil nil nil "axc" nil "axc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1107 "\"axyzc\" =~ /a.*c/" "a.*c" nil nil nil nil "axyzc" nil "axyzc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1108 "\"abd\" =~ /a[bc]d/" "a[bc]d" nil nil nil nil "abd" nil "abd" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1109 "\"axyzd\" =~ /a[bc]d/" "a[bc]d" nil nil nil nil "axyzd" nil nil nil)
(1110 "\"abc\" =~ /a[bc]d/" "a[bc]d" nil nil nil nil "abc" nil nil nil)
(1111 "\"ace\" =~ /a[b-d]e/" "a[b-d]e" nil nil nil nil "ace" nil "ace" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1112 "\"aac\" =~ /a[b-d]/" "a[b-d]" nil nil nil nil "aac" nil "ac" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1113 "\"a-\" =~ /a[-b]/" "a[-b]" nil nil nil nil "a-" nil "a-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1114 "\"a-\" =~ /a[b-]/" "a[b-]" nil nil nil nil "a-" nil "a-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1115 "\"a]\" =~ /a]/" "a]" nil nil nil nil "a]" nil "a]" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1116 "\"a]b\" =~ /a[]]b/" "a[]]b" nil nil nil nil "a]b" nil "a]b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1117 "\"aed\" =~ /a[^bc]d/" "a[^bc]d" nil nil nil nil "aed" nil "aed" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1118 "\"abd\" =~ /a[^bc]d/" "a[^bc]d" nil nil nil nil "abd" nil nil nil)
(1119 "\"abd\" =~ /a[^bc]d/" "a[^bc]d" nil nil nil nil "abd" nil nil nil)
(1120 "\"adc\" =~ /a[^-b]c/" "a[^-b]c" nil nil nil nil "adc" nil "adc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1121 "\"adc\" =~ /a[^]b]c/" "a[^]b]c" nil nil nil nil "adc" nil "adc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1122 "\"a-c\" =~ /a[^]b]c/" "a[^]b]c" nil nil nil nil "a-c" nil "a-c" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1123 "\"a]c\" =~ /a[^]b]c/" "a[^]b]c" nil nil nil nil "a]c" nil nil nil)
(1124 "\"a-\" =~ /\\ba\\b/" "\\ba\\b" nil nil nil nil "a-" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1125 "\"-a\" =~ /\\ba\\b/" "\\ba\\b" nil nil nil nil "-a" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1126 "\"-a-\" =~ /\\ba\\b/" "\\ba\\b" nil nil nil nil "-a-" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1127 "\"xy\" =~ /\\by\\b/" "\\by\\b" nil nil nil nil "xy" nil nil nil)
(1128 "\"yz\" =~ /\\by\\b/" "\\by\\b" nil nil nil nil "yz" nil nil nil)
(1129 "\"xyz\" =~ /\\by\\b/" "\\by\\b" nil nil nil nil "xyz" nil nil nil)
(1130 "\"a-\" =~ /\\Ba\\B/" "\\Ba\\B" nil nil nil nil "a-" nil nil nil)
(1131 "\"-a\" =~ /\\Ba\\B/" "\\Ba\\B" nil nil nil nil "-a" nil nil nil)
(1132 "\"-a-\" =~ /\\Ba\\B/" "\\Ba\\B" nil nil nil nil "-a-" nil nil nil)
(1133 "\"xy\" =~ /\\By\\b/" "\\By\\b" nil nil nil nil "xy" nil "y" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1134 "\"yz\" =~ /\\by\\B/" "\\by\\B" nil nil nil nil "yz" nil "y" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1135 "\"xyz\" =~ /\\By\\B/" "\\By\\B" nil nil nil nil "xyz" nil "y" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1136 "\"a\" =~ /\\w/" "\\w" nil nil nil nil "a" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1137 "\"-\" =~ /\\W/" "\\W" nil nil nil nil "-" nil "-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1138 "\"-\" =~ /\\W/" "\\W" nil nil nil nil "-" nil "-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1139 "\"a\" =~ /\\W/" "\\W" nil nil nil nil "a" nil nil nil)
(1140 "\"a b\" =~ /a\\sb/" "a\\sb" nil nil nil nil "a b" nil "a b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1141 "\"a-b\" =~ /a\\Sb/" "a\\Sb" nil nil nil nil "a-b" nil "a-b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1142 "\"a-b\" =~ /a\\Sb/" "a\\Sb" nil nil nil nil "a-b" nil "a-b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1143 "\"a b\" =~ /a\\Sb/" "a\\Sb" nil nil nil nil "a b" nil nil nil)
(1144 "\"1\" =~ /\\d/" "\\d" nil nil nil nil "1" nil "1" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1145 "\"-\" =~ /\\D/" "\\D" nil nil nil nil "-" nil "-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1146 "\"-\" =~ /\\D/" "\\D" nil nil nil nil "-" nil "-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1147 "\"1\" =~ /\\D/" "\\D" nil nil nil nil "1" nil nil nil)
(1148 "\"a\" =~ /[\\w]/" "[\\w]" nil nil nil nil "a" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1149 "\"-\" =~ /[\\W]/" "[\\W]" nil nil nil nil "-" nil "-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1150 "\"-\" =~ /[\\W]/" "[\\W]" nil nil nil nil "-" nil "-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1151 "\"a\" =~ /[\\W]/" "[\\W]" nil nil nil nil "a" nil nil nil)
(1152 "\"a b\" =~ /a[\\s]b/" "a[\\s]b" nil nil nil nil "a b" nil "a b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1153 "\"a-b\" =~ /a[\\S]b/" "a[\\S]b" nil nil nil nil "a-b" nil "a-b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1154 "\"a-b\" =~ /a[\\S]b/" "a[\\S]b" nil nil nil nil "a-b" nil "a-b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1155 "\"a b\" =~ /a[\\S]b/" "a[\\S]b" nil nil nil nil "a b" nil nil nil)
(1156 "\"1\" =~ /[\\d]/" "[\\d]" nil nil nil nil "1" nil "1" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1157 "\"-\" =~ /[\\D]/" "[\\D]" nil nil nil nil "-" nil "-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1158 "\"-\" =~ /[\\D]/" "[\\D]" nil nil nil nil "-" nil "-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1159 "\"1\" =~ /[\\D]/" "[\\D]" nil nil nil nil "1" nil nil nil)
(1160 "\"abc\" =~ /ab|cd/" "ab|cd" nil nil nil nil "abc" nil "ab" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1161 "\"abcd\" =~ /ab|cd/" "ab|cd" nil nil nil nil "abcd" nil "ab" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1162 "\"def\" =~ /()ef/" "()ef" nil nil nil nil "def" nil "ef" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1163 "\"a(b\" =~ /a\\(b/" "a\\(b" nil nil nil nil "a(b" nil "a(b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1164 "\"ab\" =~ /a\\(*b/" "a\\(*b" nil nil nil nil "ab" nil "ab" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1165 "\"a((b\" =~ /a\\(*b/" "a\\(*b" nil nil nil nil "a((b" nil "a((b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1166 "\"a\\b\" =~ /a\\\\b/" "a\\\\b" nil nil nil nil ("a" 8) nil nil nil)
(1167 "\"abc\" =~ /((a))/" "((a))" nil nil nil nil "abc" nil "a" ("a" "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1168 "\"abc\" =~ /(a)b(c)/" "(a)b(c)" nil nil nil nil "abc" nil "abc" ("a" "c" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1169 "\"aabbabc\" =~ /a+b+c/" "a+b+c" nil nil nil nil "aabbabc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1170 "\"aabbabc\" =~ /a{1,}b{1,}c/" "a{1,}b{1,}c" nil nil nil nil "aabbabc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1171 "\"abcabc\" =~ /a.+?c/" "a.+?c" nil nil nil nil "abcabc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1172 "\"ab\" =~ /(a+|b)*/" "(a+|b)*" nil nil nil nil "ab" nil "ab" ("b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1173 "\"ab\" =~ /(a+|b){0,}/" "(a+|b){0,}" nil nil nil nil "ab" nil "ab" ("b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1174 "\"ab\" =~ /(a+|b)+/" "(a+|b)+" nil nil nil nil "ab" nil "ab" ("b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1175 "\"ab\" =~ /(a+|b){1,}/" "(a+|b){1,}" nil nil nil nil "ab" nil "ab" ("b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1176 "\"ab\" =~ /(a+|b)?/" "(a+|b)?" nil nil nil nil "ab" nil "a" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1177 "\"ab\" =~ /(a+|b){0,1}/" "(a+|b){0,1}" nil nil nil nil "ab" nil "a" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1178 "\"cde\" =~ /[^ab]*/" "[^ab]*" nil nil nil nil "cde" nil "cde" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1179 "\"b\" =~ /abc/" "abc" nil nil nil nil "b" nil nil nil)
(1180 "\"abbbcd\" =~
/([abc])*d/" "([abc])*d" nil nil nil nil "abbbcd" nil "abbbcd" ("c" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1181 "\"abcd\" =~ /([abc])*bcd/" "([abc])*bcd" nil nil nil nil "abcd" nil "abcd" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1182 "\"e\" =~ /a|b|c|d|e/" "a|b|c|d|e" nil nil nil nil "e" nil "e" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1183 "\"ef\" =~ /(a|b|c|d|e)f/" "(a|b|c|d|e)f" nil nil nil nil "ef" nil "ef" ("e" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1184 "\"abcdefg\" =~ /abcd*efg/" "abcd*efg" nil nil nil nil "abcdefg" nil "abcdefg" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1185 "\"xabyabbbz\" =~ /ab*/" "ab*" nil nil nil nil "xabyabbbz" nil "ab" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1186 "\"xayabbbz\" =~ /ab*/" "ab*" nil nil nil nil "xayabbbz" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1187 "\"abcde\" =~ /(ab|cd)e/" "(ab|cd)e" nil nil nil nil "abcde" nil "cde" ("cd" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1188 "\"hij\" =~ /[abhgefdc]ij/" "[abhgefdc]ij" nil nil nil nil "hij" nil "hij" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1189 "\"abcdef\" =~ /(abc|)ef/" "(abc|)ef" nil nil nil nil "abcdef" nil "ef" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1190 "\"abcd\" =~ /(a|b)c*d/" "(a|b)c*d" nil nil nil nil "abcd" nil "bcd" ("b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1191 "\"abc\" =~ /(ab|ab*)bc/" "(ab|ab*)bc" nil nil nil nil "abc" nil "abc" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1192 "\"abc\" =~ /a([bc]*)c*/" "a([bc]*)c*" nil nil nil nil "abc" nil "abc" ("bc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1193 "\"abcd\" =~ /a([bc]*)(c*d)/" "a([bc]*)(c*d)" nil nil nil nil "abcd" nil "abcd" ("bc" "d" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1194 "\"abcd\" =~ /a([bc]+)(c*d)/" "a([bc]+)(c*d)" nil nil nil nil "abcd" nil "abcd" ("bc" "d" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1195 "\"abcd\" =~ /a([bc]*)(c+d)/" "a([bc]*)(c+d)" nil nil nil nil "abcd" nil "abcd" ("b" "cd" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1196 "\"adcdcde\" =~ /a[bcd]*dcdcde/" "a[bcd]*dcdcde" nil nil nil nil "adcdcde" nil "adcdcde" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1197 "\"abcde\" =~ /a[bcd]+dcdcde/" "a[bcd]+dcdcde" nil nil nil nil "abcde" nil nil nil)
(1198 "\"adcdcde\" =~ /a[bcd]+dcdcde/" "a[bcd]+dcdcde" nil nil nil nil "adcdcde" nil nil nil)
(1199 "\"abc\" =~ /(ab|a)b*c/" "(ab|a)b*c" nil nil nil nil "abc" nil "abc" ("ab" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1200 "\"abcd\" =~ /((a)(b)c)(d)/" "((a)(b)c)(d)" nil nil nil nil "abcd" nil "abcd" ("abc" "a" "b" "d" nil nil nil nil nil nil nil nil nil nil nil nil))
(1201 "\"alpha\" =~ /[a-zA-Z_][a-zA-Z0-9_]*/" "[a-zA-Z_][a-zA-Z0-9_]*" nil nil nil nil "alpha" nil "alpha" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1202 "\"abh\" =~ /^a(bc+|b[eh])g|.h$/" "^a(bc+|b[eh])g|.h$" nil nil nil nil "abh" nil "bh" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1203 "\"effgz\" =~ /(bc+d$|ef*g.|h?i(j|k))/" "(bc+d$|ef*g.|h?i(j|k))" nil nil nil nil "effgz" nil "effgz" ("effgz" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1204 "\"ij\" =~ /(bc+d$|ef*g.|h?i(j|k))/" "(bc+d$|ef*g.|h?i(j|k))" nil nil nil nil "ij" nil "ij" ("ij" "j" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1205 "\"reffgz\" =~ /(bc+d$|ef*g.|h?i(j|k))/" "(bc+d$|ef*g.|h?i(j|k))" nil nil nil nil "reffgz" nil "effgz" ("effgz" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1206 "\"effg\" =~ /(bc+d$|ef*g.|h?i(j|k))/" "(bc+d$|ef*g.|h?i(j|k))" nil nil nil nil "effg" nil nil nil)
(1207 "\"bcdd\" =~ /(bc+d$|ef*g.|h?i(j|k))/" "(bc+d$|ef*g.|h?i(j|k))" nil nil nil nil "bcdd" nil nil nil)
(1208 "\"a\" =~ /((((((((((a))))))))))/" "((((((((((a))))))))))" nil nil nil nil "a" nil "a" ("a" "a" "a" "a" "a" "a" "a" "a" "a" "a" nil nil nil nil nil nil))
(1209 "\"aa\" =~ /((((((((((a))))))))))\\10/" "((((((((((a))))))))))\\10" nil nil nil nil "aa" nil "aa" ("a" "a" "a" "a" "a" "a" "a" "a" "a" "a" nil nil nil nil nil nil))
(1210 "\"a\" =~ /(((((((((a)))))))))/" "(((((((((a)))))))))" nil nil nil nil "a" nil "a" ("a" "a" "a" "a" "a" "a" "a" "a" "a" nil nil nil nil nil nil nil))
(1211 "\"aa\" =~ /multiple words of text/" "multiple words of text" nil nil nil nil "aa" nil nil nil)
(1212 "\"uh-uh\" =~ /multiple words of text/" "multiple words of text" nil nil nil nil "uh-uh" nil nil nil)
(1213 "\"multiple words, yeah\" =~ /multiple words/" "multiple words" nil nil nil nil "multiple words, yeah" nil "multiple words" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1214 "\"abcde\" =~ /(.*)c(.*)/" "(.*)c(.*)" nil nil nil nil "abcde" nil "abcde" ("ab" "de" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1215 "\"(a, b)\" =~ /\\((.*), (.*)\\)/" "\\((.*), (.*)\\)" nil nil nil nil "(a, b)" nil "(a, b)" ("a" "b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1216 "\"abcd\" =~ /abcd/" "abcd" nil nil nil nil "abcd" nil "abcd" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1217 "\"abcd\" =~ /a(bc)d/" "a(bc)d" nil nil nil nil "abcd" nil "abcd" ("bc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1218 "\"ac\" =~ /a[-]?c/" "a[-]?c" nil nil nil nil "ac" nil "ac" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1219 "\"abcabc\" =~ /(abc)\\1/" "(abc)\\1" nil nil nil nil "abcabc" nil "abcabc" ("abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1220 "\"abcabc\" =~ /([a-c]*)\\1/" "([a-c]*)\\1" nil nil nil nil "abcabc" nil "abcabc" ("abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1221 "\"a\" =~ /(a)|\\1/" "(a)|\\1" nil nil nil nil "a" nil "a" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1222 "\"ab\" =~ /(a)|\\1/" "(a)|\\1" nil nil nil nil "ab" nil "a" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1223 "\"x\" =~ /(a)|\\1/" "(a)|\\1" nil nil nil nil "x" nil nil nil)
(1224 "\"ababbbcbc\" =~ /(([a-c])b*?\\2)*/" "(([a-c])b*?\\2)*" nil nil nil nil "ababbbcbc" nil "ababb" ("bb" "b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1225 "\"ababbbcbc\" =~ /(([a-c])b*?\\2){3}/" "(([a-c])b*?\\2){3}" nil nil nil nil "ababbbcbc" nil "ababbbcbc" ("cbc" "c" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1226 "\"aaaxabaxbaaxbbax\" =~ /((\\3|b)\\2(a)x)+/" "((\\3|b)\\2(a)x)+" nil nil nil nil "aaaxabaxbaaxbbax" nil "bbax" ("bbax" "b" "a" nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1227 "\"bbaababbabaaaaabbaaaabba\" =~ /((\\3|b)\\2(a)){2,}/" "((\\3|b)\\2(a)){2,}" nil nil nil nil "bbaababbabaaaaabbaaaabba" nil "bbaaaabba" ("bba" "b" "a" nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1228 "\"ABC\" =~ /abc/i" "abc" t nil nil nil "ABC" nil "ABC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1229 "\"XABCY\" =~ /abc/i" "abc" t nil nil nil "XABCY" nil "ABC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1230 "\"ABABC\" =~ /abc/i" "abc" t nil nil nil "ABABC" nil "ABC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1231 "\"aaxabxbaxbbx\" =~ /abc/i" "abc" t nil nil nil "aaxabxbaxbbx" nil nil nil)
(1232 "\"XBC\" =~ /abc/i" "abc" t nil nil nil "XBC" nil nil nil)
(1233 "\"AXC\" =~ /abc/i" "abc" t nil nil nil "AXC" nil nil nil)
(1234 "\"ABX\" =~ /abc/i" "abc" t nil nil nil "ABX" nil nil nil)
(1235 "\"ABC\" =~ /ab*c/i" "ab*c" t nil nil nil "ABC" nil "ABC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1236 "\"ABC\" =~ /ab*bc/i" "ab*bc" t nil nil nil "ABC" nil "ABC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1237 "\"ABBC\" =~ /ab*bc/i" "ab*bc" t nil nil nil "ABBC" nil "ABBC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1238 "\"ABBBBC\" =~ /ab*?bc/i" "ab*?bc" t nil nil nil "ABBBBC" nil "ABBBBC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1239 "\"ABBBBC\" =~ /ab{0,}?bc/i" "ab{0,}?bc" t nil nil nil "ABBBBC" nil "ABBBBC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1240 "\"ABBC\" =~ /ab+?bc/i" "ab+?bc" t nil nil nil "ABBC" nil "ABBC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1241 "\"ABC\" =~ /ab+bc/i" "ab+bc" t nil nil nil "ABC" nil nil nil)
(1242 "\"ABQ\" =~ /ab+bc/i" "ab+bc" t nil nil nil "ABQ" nil nil nil)
(1243 "\"ABBBBC\" =~ /ab+bc/i" "ab+bc" t nil nil nil "ABBBBC" nil "ABBBBC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1244 "\"ABBBBC\" =~ /ab{1,}?bc/i" "ab{1,}?bc" t nil nil nil "ABBBBC" nil "ABBBBC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1245 "\"ABBBBC\" =~ /ab{1,3}?bc/i" "ab{1,3}?bc" t nil nil nil "ABBBBC" nil "ABBBBC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1246 "\"ABBBBC\" =~ /ab{3,4}?bc/i" "ab{3,4}?bc" t nil nil nil "ABBBBC" nil "ABBBBC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1247 "\"ABQ\" =~ /ab{4,5}?bc/i" "ab{4,5}?bc" t nil nil nil "ABQ" nil nil nil)
(1248 "\"ABBBBC\" =~ /ab{4,5}?bc/i" "ab{4,5}?bc" t nil nil nil "ABBBBC" nil nil nil)
(1249 "\"ABBC\" =~ /ab??bc/i" "ab??bc" t nil nil nil "ABBC" nil "ABBC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1250 "\"ABC\" =~ /ab??bc/i" "ab??bc" t nil nil nil "ABC" nil "ABC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1251 "\"ABC\" =~ /ab{0,1}?bc/i" "ab{0,1}?bc" t nil nil nil "ABC" nil "ABC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1252 "\"ABC\" =~ /ab??c/i" "ab??c" t nil nil nil "ABC" nil "ABC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1253 "\"ABC\" =~ /ab{0,1}?c/i" "ab{0,1}?c" t nil nil nil "ABC" nil "ABC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1254 "\"ABC\" =~ /^abc$/i" "^abc$" t nil nil nil "ABC" nil "ABC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1255 "\"ABBBBC\" =~ /^abc$/i" "^abc$" t nil nil nil "ABBBBC" nil nil nil)
(1256 "\"ABCC\" =~ /^abc$/i" "^abc$" t nil nil nil "ABCC" nil nil nil)
(1257 "\"ABCC\" =~ /^abc/i" "^abc" t nil nil nil "ABCC" nil "ABC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1258 "\"AABC\" =~ /abc$/i" "abc$" t nil nil nil "AABC" nil "ABC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1259 "\"ABC\" =~ /^/i" "^" t nil nil nil "ABC" nil "" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1260 "\"ABC\" =~ /$/i" "$" t nil nil nil "ABC" nil "" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1261 "\"ABC\" =~ /a.c/i" "a.c" t nil nil nil "ABC" nil "ABC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1262 "\"AXC\" =~ /a.c/i" "a.c" t nil nil nil "AXC" nil "AXC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1263 "\"AXYZC\" =~ /a.*?c/i" "a.*?c" t nil nil nil "AXYZC" nil "AXYZC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1264 "\"AABC\" =~ /a.*c/i" "a.*c" t nil nil nil "AABC" nil "AABC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1265 "\"AXYZD\" =~ /a.*c/i" "a.*c" t nil nil nil "AXYZD" nil nil nil)
(1266 "\"ABD\" =~ /a[bc]d/i" "a[bc]d" t nil nil nil "ABD" nil "ABD" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1267 "\"ACE\" =~ /a[b-d]e/i" "a[b-d]e" t nil nil nil "ACE" nil "ACE" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1268 "\"ABC\" =~ /a[b-d]e/i" "a[b-d]e" t nil nil nil "ABC" nil nil nil)
(1269 "\"ABD\" =~ /a[b-d]e/i" "a[b-d]e" t nil nil nil "ABD" nil nil nil)
(1270 "\"AAC\" =~ /a[b-d]/i" "a[b-d]" t nil nil nil "AAC" nil "AC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1271 "\"A-\" =~ /a[-b]/i" "a[-b]" t nil nil nil "A-" nil "A-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1272 "\"A-\" =~ /a[b-]/i" "a[b-]" t nil nil nil "A-" nil "A-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1273 "\"A]\" =~ /a]/i" "a]" t nil nil nil "A]" nil "A]" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1274 "\"A]B\" =~ /a[]]b/i" "a[]]b" t nil nil nil "A]B" nil "A]B" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1275 "\"AED\" =~ /a[^bc]d/i" "a[^bc]d" t nil nil nil "AED" nil "AED" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1276 "\"ADC\" =~ /a[^-b]c/i" "a[^-b]c" t nil nil nil "ADC" nil "ADC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1277 "\"ABD\" =~ /a[^-b]c/i" "a[^-b]c" t nil nil nil "ABD" nil nil nil)
(1278 "\"A-C\" =~ /a[^-b]c/i" "a[^-b]c" t nil nil nil "A-C" nil nil nil)
(1279 "\"ADC\" =~ /a[^]b]c/i" "a[^]b]c" t nil nil nil "ADC" nil "ADC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1280 "\"ABC\" =~ /ab|cd/i" "ab|cd" t nil nil nil "ABC" nil "AB" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1281 "\"ABCD\" =~ /ab|cd/i" "ab|cd" t nil nil nil "ABCD" nil "AB" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1282 "\"DEF\" =~ /()ef/i" "()ef" t nil nil nil "DEF" nil "EF" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1283 "\"A]C\" =~ /$b/i" "$b" t nil nil nil "A]C" nil nil nil)
(1284 "\"B\" =~ /$b/i" "$b" t nil nil nil "B" nil nil nil)
(1285 "\"A(B\" =~ /a\\(b/i" "a\\(b" t nil nil nil "A(B" nil "A(B" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1286 "\"AB\" =~ /a\\(*b/i" "a\\(*b" t nil nil nil "AB" nil "AB" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1287 "\"A((B\" =~ /a\\(*b/i" "a\\(*b" t nil nil nil "A((B" nil "A((B" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1288 "\"A\\B\" =~ /a\\\\b/i" "a\\\\b" t nil nil nil "AB" nil nil nil)
(1289 "\"ABC\" =~ /((a))/i" "((a))" t nil nil nil "ABC" nil "A" ("A" "A" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1290 "\"ABC\" =~ /(a)b(c)/i" "(a)b(c)" t nil nil nil "ABC" nil "ABC" ("A" "C" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1291 "\"AABBABC\" =~ /a+b+c/i" "a+b+c" t nil nil nil "AABBABC" nil "ABC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1292 "\"AABBABC\" =~ /a{1,}b{1,}c/i" "a{1,}b{1,}c" t nil nil nil "AABBABC" nil "ABC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1293 "\"ABCABC\" =~ /a.+?c/i" "a.+?c" t nil nil nil "ABCABC" nil "ABC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1294 "\"ABCABC\" =~ /a.*?c/i" "a.*?c" t nil nil nil "ABCABC" nil "ABC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1295 "\"ABCABC\" =~ /a.{0,5}?c/i" "a.{0,5}?c" t nil nil nil "ABCABC" nil "ABC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1296 "\"AB\" =~ /(a+|b)*/i" "(a+|b)*" t nil nil nil "AB" nil "AB" ("B" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1297 "\"AB\" =~ /(a+|b){0,}/i" "(a+|b){0,}" t nil nil nil "AB" nil "AB" ("B" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1298 "\"AB\" =~ /(a+|b)+/i" "(a+|b)+" t nil nil nil "AB" nil "AB" ("B" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1299 "\"AB\" =~ /(a+|b){1,}/i" "(a+|b){1,}" t nil nil nil "AB" nil "AB" ("B" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1300 "\"AB\" =~ /(a+|b)?/i" "(a+|b)?" t nil nil nil "AB" nil "A" ("A" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1301 "\"AB\" =~ /(a+|b){0,1}/i" "(a+|b){0,1}" t nil nil nil "AB" nil "A" ("A" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1302 "\"AB\" =~ /(a+|b){0,1}?/i" "(a+|b){0,1}?" t nil nil nil "AB" nil "" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1303 "\"CDE\" =~ /[^ab]*/i" "[^ab]*" t nil nil nil "CDE" nil "CDE" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1304 "\"ABBBCD\" =~
/([abc])*d/i" "([abc])*d" t nil nil nil "ABBBCD" nil "ABBBCD" ("C" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1305 "\"ABCD\" =~ /([abc])*bcd/i" "([abc])*bcd" t nil nil nil "ABCD" nil "ABCD" ("A" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1306 "\"E\" =~ /a|b|c|d|e/i" "a|b|c|d|e" t nil nil nil "E" nil "E" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1307 "\"EF\" =~ /(a|b|c|d|e)f/i" "(a|b|c|d|e)f" t nil nil nil "EF" nil "EF" ("E" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1308 "\"ABCDEFG\" =~ /abcd*efg/i" "abcd*efg" t nil nil nil "ABCDEFG" nil "ABCDEFG" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1309 "\"XABYABBBZ\" =~ /ab*/i" "ab*" t nil nil nil "XABYABBBZ" nil "AB" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1310 "\"XAYABBBZ\" =~ /ab*/i" "ab*" t nil nil nil "XAYABBBZ" nil "A" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1311 "\"ABCDE\" =~ /(ab|cd)e/i" "(ab|cd)e" t nil nil nil "ABCDE" nil "CDE" ("CD" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1312 "\"HIJ\" =~ /[abhgefdc]ij/i" "[abhgefdc]ij" t nil nil nil "HIJ" nil "HIJ" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1313 "\"ABCDE\" =~ /^(ab|cd)e/i" "^(ab|cd)e" t nil nil nil "ABCDE" nil nil nil)
(1314 "\"ABCDEF\" =~ /(abc|)ef/i" "(abc|)ef" t nil nil nil "ABCDEF" nil "EF" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1315 "\"ABCD\" =~ /(a|b)c*d/i" "(a|b)c*d" t nil nil nil "ABCD" nil "BCD" ("B" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1316 "\"ABC\" =~ /(ab|ab*)bc/i" "(ab|ab*)bc" t nil nil nil "ABC" nil "ABC" ("A" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1317 "\"ABC\" =~ /a([bc]*)c*/i" "a([bc]*)c*" t nil nil nil "ABC" nil "ABC" ("BC" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1318 "\"ABCD\" =~ /a([bc]*)(c*d)/i" "a([bc]*)(c*d)" t nil nil nil "ABCD" nil "ABCD" ("BC" "D" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1319 "\"ABCD\" =~ /a([bc]+)(c*d)/i" "a([bc]+)(c*d)" t nil nil nil "ABCD" nil "ABCD" ("BC" "D" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1320 "\"ABCD\" =~ /a([bc]*)(c+d)/i" "a([bc]*)(c+d)" t nil nil nil "ABCD" nil "ABCD" ("B" "CD" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1321 "\"ADCDCDE\" =~ /a[bcd]*dcdcde/i" "a[bcd]*dcdcde" t nil nil nil "ADCDCDE" nil "ADCDCDE" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1322 "\"ABC\" =~ /(ab|a)b*c/i" "(ab|a)b*c" t nil nil nil "ABC" nil "ABC" ("AB" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1323 "\"ABCD\" =~ /((a)(b)c)(d)/i" "((a)(b)c)(d)" t nil nil nil "ABCD" nil "ABCD" ("ABC" "A" "B" "D" nil nil nil nil nil nil nil nil nil nil nil nil))
(1324 "\"ALPHA\" =~ /[a-zA-Z_][a-zA-Z0-9_]*/i" "[a-zA-Z_][a-zA-Z0-9_]*" t nil nil nil "ALPHA" nil "ALPHA" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1325 "\"ABH\" =~ /^a(bc+|b[eh])g|.h$/i" "^a(bc+|b[eh])g|.h$" t nil nil nil "ABH" nil "BH" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1326 "\"EFFGZ\" =~ /(bc+d$|ef*g.|h?i(j|k))/i" "(bc+d$|ef*g.|h?i(j|k))" t nil nil nil "EFFGZ" nil "EFFGZ" ("EFFGZ" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1327 "\"IJ\" =~ /(bc+d$|ef*g.|h?i(j|k))/i" "(bc+d$|ef*g.|h?i(j|k))" t nil nil nil "IJ" nil "IJ" ("IJ" "J" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1328 "\"REFFGZ\" =~ /(bc+d$|ef*g.|h?i(j|k))/i" "(bc+d$|ef*g.|h?i(j|k))" t nil nil nil "REFFGZ" nil "EFFGZ" ("EFFGZ" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1329 "\"ADCDCDE\" =~ /(bc+d$|ef*g.|h?i(j|k))/i" "(bc+d$|ef*g.|h?i(j|k))" t nil nil nil "ADCDCDE" nil nil nil)
(1330 "\"EFFG\" =~ /(bc+d$|ef*g.|h?i(j|k))/i" "(bc+d$|ef*g.|h?i(j|k))" t nil nil nil "EFFG" nil nil nil)
(1331 "\"BCDD\" =~ /(bc+d$|ef*g.|h?i(j|k))/i" "(bc+d$|ef*g.|h?i(j|k))" t nil nil nil "BCDD" nil nil nil)
(1332 "\"A\" =~ /((((((((((a))))))))))/i" "((((((((((a))))))))))" t nil nil nil "A" nil "A" ("A" "A" "A" "A" "A" "A" "A" "A" "A" "A" nil nil nil nil nil nil))
(1333 "\"AA\" =~ /((((((((((a))))))))))\\10/i" "((((((((((a))))))))))\\10" t nil nil nil "AA" nil "AA" ("A" "A" "A" "A" "A" "A" "A" "A" "A" "A" nil nil nil nil nil nil))
(1334 "\"A\" =~ /(((((((((a)))))))))/i" "(((((((((a)))))))))" t nil nil nil "A" nil "A" ("A" "A" "A" "A" "A" "A" "A" "A" "A" nil nil nil nil nil nil nil))
(1335 "\"A\" =~ /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i" "(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))" t nil nil nil "A" nil "A" ("A" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1336 "\"C\" =~ /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i" "(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))" t nil nil nil "C" nil "C" ("C" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1337 "\"AA\" =~ /multiple words of text/i" "multiple words of text" t nil nil nil "AA" nil nil nil)
(1338 "\"UH-UH\" =~ /multiple words of text/i" "multiple words of text" t nil nil nil "UH-UH" nil nil nil)
(1339 "\"MULTIPLE WORDS, YEAH\" =~ /multiple words/i" "multiple words" t nil nil nil "MULTIPLE WORDS, YEAH" nil "MULTIPLE WORDS" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1340 "\"ABCDE\" =~ /(.*)c(.*)/i" "(.*)c(.*)" t nil nil nil "ABCDE" nil "ABCDE" ("AB" "DE" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1341 "\"(A, B)\" =~ /\\((.*), (.*)\\)/i" "\\((.*), (.*)\\)" t nil nil nil "(A, B)" nil "(A, B)" ("A" "B" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1342 "\"ABCD\" =~ /abcd/i" "abcd" t nil nil nil "ABCD" nil "ABCD" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1343 "\"ABCD\" =~ /a(bc)d/i" "a(bc)d" t nil nil nil "ABCD" nil "ABCD" ("BC" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1344 "\"AC\" =~ /a[-]?c/i" "a[-]?c" t nil nil nil "AC" nil "AC" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1345 "\"ABCABC\" =~ /(abc)\\1/i" "(abc)\\1" t nil nil nil "ABCABC" nil "ABCABC" ("ABC" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1346 "\"ABCABC\" =~ /([a-c]*)\\1/i" "([a-c]*)\\1" t nil nil nil "ABCABC" nil "ABCABC" ("ABC" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1347 "\"abad\" =~ /a(?!b)./" "a(?!b)." nil nil nil nil "abad" nil "ad" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1348 "\"abad\" =~ /a(?=d)./" "a(?=d)." nil nil nil nil "abad" nil "ad" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1349 "\"abad\" =~ /a(?=c|d)./" "a(?=c|d)." nil nil nil nil "abad" nil "ad" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1350 "\"ace\" =~ /a(?:b|c|d)(.)/" "a(?:b|c|d)(.)" nil nil nil nil "ace" nil "ace" ("e" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1351 "\"ace\" =~ /a(?:b|c|d)*(.)/" "a(?:b|c|d)*(.)" nil nil nil nil "ace" nil "ace" ("e" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1352 "\"ace\" =~ /a(?:b|c|d)+?(.)/" "a(?:b|c|d)+?(.)" nil nil nil nil "ace" nil "ace" ("e" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1353 "\"acdbcdbe\" =~ /a(?:b|c|d)+?(.)/" "a(?:b|c|d)+?(.)" nil nil nil nil "acdbcdbe" nil "acd" ("d" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1354 "\"acdbcdbe\" =~ /a(?:b|c|d)+(.)/" "a(?:b|c|d)+(.)" nil nil nil nil "acdbcdbe" nil "acdbcdbe" ("e" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1355 "\"acdbcdbe\" =~ /a(?:b|c|d){2}(.)/" "a(?:b|c|d){2}(.)" nil nil nil nil "acdbcdbe" nil "acdb" ("b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1356 "\"acdbcdbe\" =~ /a(?:b|c|d){4,5}(.)/" "a(?:b|c|d){4,5}(.)" nil nil nil nil "acdbcdbe" nil "acdbcdb" ("b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1357 "\"acdbcdbe\" =~ /a(?:b|c|d){4,5}?(.)/" "a(?:b|c|d){4,5}?(.)" nil nil nil nil "acdbcdbe" nil "acdbcd" ("d" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1358 "\"foobar\" =~ /((foo)|(bar))*/" "((foo)|(bar))*" nil nil nil nil "foobar" nil "foobar" ("bar" "foo" "bar" nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1359 "\"acdbcdbe\" =~ /a(?:b|c|d){6,7}(.)/" "a(?:b|c|d){6,7}(.)" nil nil nil nil "acdbcdbe" nil "acdbcdbe" ("e" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1360 "\"acdbcdbe\" =~ /a(?:b|c|d){6,7}?(.)/" "a(?:b|c|d){6,7}?(.)" nil nil nil nil "acdbcdbe" nil "acdbcdbe" ("e" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1361 "\"acdbcdbe\" =~ /a(?:b|c|d){5,6}(.)/" "a(?:b|c|d){5,6}(.)" nil nil nil nil "acdbcdbe" nil "acdbcdbe" ("e" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1362 "\"acdbcdbe\" =~ /a(?:b|c|d){5,6}?(.)/" "a(?:b|c|d){5,6}?(.)" nil nil nil nil "acdbcdbe" nil "acdbcdb" ("b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1363 "\"acdbcdbe\" =~ /a(?:b|c|d){5,7}(.)/" "a(?:b|c|d){5,7}(.)" nil nil nil nil "acdbcdbe" nil "acdbcdbe" ("e" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1364 "\"acdbcdbe\" =~ /a(?:b|c|d){5,7}?(.)/" "a(?:b|c|d){5,7}?(.)" nil nil nil nil "acdbcdbe" nil "acdbcdb" ("b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1365 "\"ace\" =~ /a(?:b|(c|e){1,2}?|d)+?(.)/" "a(?:b|(c|e){1,2}?|d)+?(.)" nil nil nil nil "ace" nil "ace" ("c" "e" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1366 "\"AB\" =~ /^(.+)?B/" "^(.+)?B" nil nil nil nil "AB" nil "AB" ("A" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1367 "\".\" =~ /^([^a-z])|(\\^)$/" "^([^a-z])|(\\^)$" nil nil nil nil "." nil "." ("." nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1368 "\"<&OUT\" =~ /^[<>]&/" "^[<>]&" nil nil nil nil "<&OUT" nil "<&" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1369 "\"aaaaaaaaaa\" =~ /^(a\\1?){4}$/" "^(a\\1?){4}$" nil nil nil nil "aaaaaaaaaa" nil "aaaaaaaaaa" ("aaaa" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1370 "\"AB\" =~ /^(a\\1?){4}$/" "^(a\\1?){4}$" nil nil nil nil "AB" nil nil nil)
(1371 "\"aaaaaaaaa\" =~ /^(a\\1?){4}$/" "^(a\\1?){4}$" nil nil nil nil "aaaaaaaaa" nil nil nil)
(1372 "\"aaaaaaaaaaa\" =~ /^(a\\1?){4}$/" "^(a\\1?){4}$" nil nil nil nil "aaaaaaaaaaa" nil nil nil)
(1373 "\"aaaaaaaaaa\" =~ /^(a(?(1)\\1)){4}$/" "^(a(?(1)\\1)){4}$" nil nil nil nil "aaaaaaaaaa" nil "aaaaaaaaaa" ("aaaa" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1374 "\"aaaaaaaaa\" =~ /^(a(?(1)\\1)){4}$/" "^(a(?(1)\\1)){4}$" nil nil nil nil "aaaaaaaaa" nil nil nil)
(1375 "\"aaaaaaaaaaa\" =~ /^(a(?(1)\\1)){4}$/" "^(a(?(1)\\1)){4}$" nil nil nil nil "aaaaaaaaaaa" nil nil nil)
(1376 "\"foobar\" =~ /(?:(f)(o)(o)|(b)(a)(r))*/" "(?:(f)(o)(o)|(b)(a)(r))*" nil nil nil nil "foobar" nil "foobar" ("f" "o" "o" "b" "a" "r" nil nil nil nil nil nil nil nil nil nil))
(1377 "\"ab\" =~ /(?<=a)b/" "(?<=a)b" nil nil nil nil "ab" nil "b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1378 "\"cb\" =~ /(?<=a)b/" "(?<=a)b" nil nil nil nil "cb" nil nil nil)
(1379 "\"b\" =~ /(?<=a)b/" "(?<=a)b" nil nil nil nil "b" nil nil nil)
(1380 "\"ab\" =~ /(?<!c)b/" "(?<!c)b" nil nil nil nil "ab" nil "b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1381 "\"b\" =~ /(?<!c)b/" "(?<!c)b" nil nil nil nil "b" nil "b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1382 "\"b\" =~ /(?<!c)b/" "(?<!c)b" nil nil nil nil "b" nil "b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1383 "\"aba\" =~ /(?:..)*a/" "(?:..)*a" nil nil nil nil "aba" nil "aba" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1384 "\"aba\" =~ /(?:..)*?a/" "(?:..)*?a" nil nil nil nil "aba" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1385 "\"abc\" =~ /^(?:b|a(?=(.)))*\\1/" "^(?:b|a(?=(.)))*\\1" nil nil nil nil "abc" nil "ab" ("b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1386 "\"abc\" =~ /^(){3,5}/" "^(){3,5}" nil nil nil nil "abc" nil "" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1387 "\"aax\" =~ /^(a+)*ax/" "^(a+)*ax" nil nil nil nil "aax" nil "aax" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1388 "\"aax\" =~ /^((a|b)+)*ax/" "^((a|b)+)*ax" nil nil nil nil "aax" nil "aax" ("a" "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1389 "\"aax\" =~ /^((a|bc)+)*ax/" "^((a|bc)+)*ax" nil nil nil nil "aax" nil "aax" ("a" "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1390 "\"cab\" =~ /(a|x)*ab/" "(a|x)*ab" nil nil nil nil "cab" nil "ab" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1391 "\"cab\" =~ /(a)*ab/" "(a)*ab" nil nil nil nil "cab" nil "ab" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1392 "\"ab\" =~ /(?:(?i)a)b/" "(?:(?i)a)b" nil nil nil nil "ab" nil "ab" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1393 "\"ab\" =~ /((?i)a)b/" "((?i)a)b" nil nil nil nil "ab" nil "ab" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1394 "\"Ab\" =~ /(?:(?i)a)b/" "(?:(?i)a)b" nil nil nil nil "Ab" nil "Ab" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1395 "\"Ab\" =~ /((?i)a)b/" "((?i)a)b" nil nil nil nil "Ab" nil "Ab" ("A" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1396 "\"cb\" =~ /(?:(?i)a)b/" "(?:(?i)a)b" nil nil nil nil "cb" nil nil nil)
(1397 "\"aB\" =~ /(?:(?i)a)b/" "(?:(?i)a)b" nil nil nil nil "aB" nil nil nil)
(1398 "\"ab\" =~ /(?i:a)b/" "(?i:a)b" nil nil nil nil "ab" nil "ab" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1399 "\"ab\" =~ /((?i:a))b/" "((?i:a))b" nil nil nil nil "ab" nil "ab" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1400 "\"Ab\" =~ /(?i:a)b/" "(?i:a)b" nil nil nil nil "Ab" nil "Ab" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1401 "\"Ab\" =~ /((?i:a))b/" "((?i:a))b" nil nil nil nil "Ab" nil "Ab" ("A" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1402 "\"aB\" =~ /(?i:a)b/" "(?i:a)b" nil nil nil nil "aB" nil nil nil)
(1403 "\"aB\" =~ /(?i:a)b/" "(?i:a)b" nil nil nil nil "aB" nil nil nil)
(1404 "\"ab\" =~ /(?:(?-i)a)b/i" "(?:(?-i)a)b" t nil nil nil "ab" nil "ab" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1405 "\"ab\" =~ /((?-i)a)b/i" "((?-i)a)b" t nil nil nil "ab" nil "ab" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1406 "\"aB\" =~ /(?:(?-i)a)b/i" "(?:(?-i)a)b" t nil nil nil "aB" nil "aB" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1407 "\"aB\" =~ /((?-i)a)b/i" "((?-i)a)b" t nil nil nil "aB" nil "aB" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1408 "\"aB\" =~ /(?:(?-i)a)b/i" "(?:(?-i)a)b" t nil nil nil "aB" nil "aB" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1409 "\"Ab\" =~ /(?:(?-i)a)b/i" "(?:(?-i)a)b" t nil nil nil "Ab" nil nil nil)
(1410 "\"aB\" =~ /(?:(?-i)a)b/i" "(?:(?-i)a)b" t nil nil nil "aB" nil "aB" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1411 "\"aB\" =~ /((?-i)a)b/i" "((?-i)a)b" t nil nil nil "aB" nil "aB" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1412 "\"Ab\" =~ /(?:(?-i)a)b/i" "(?:(?-i)a)b" t nil nil nil "Ab" nil nil nil)
(1413 "\"AB\" =~ /(?:(?-i)a)b/i" "(?:(?-i)a)b" t nil nil nil "AB" nil nil nil)
(1414 "\"ab\" =~ /(?-i:a)b/i" "(?-i:a)b" t nil nil nil "ab" nil "ab" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1415 "\"ab\" =~ /((?-i:a))b/i" "((?-i:a))b" t nil nil nil "ab" nil "ab" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1416 "\"aB\" =~ /(?-i:a)b/i" "(?-i:a)b" t nil nil nil "aB" nil "aB" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1417 "\"aB\" =~ /((?-i:a))b/i" "((?-i:a))b" t nil nil nil "aB" nil "aB" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1418 "\"AB\" =~ /(?-i:a)b/i" "(?-i:a)b" t nil nil nil "AB" nil nil nil)
(1419 "\"Ab\" =~ /(?-i:a)b/i" "(?-i:a)b" t nil nil nil "Ab" nil nil nil)
(1420 "\"aB\" =~ /(?-i:a)b/i" "(?-i:a)b" t nil nil nil "aB" nil "aB" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1421 "\"aB\" =~ /((?-i:a))b/i" "((?-i:a))b" t nil nil nil "aB" nil "aB" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1422 "\"Ab\" =~ /(?-i:a)b/i" "(?-i:a)b" t nil nil nil "Ab" nil nil nil)
(1423 "\"AB\" =~ /(?-i:a)b/i" "(?-i:a)b" t nil nil nil "AB" nil nil nil)
(1424 "\"AB\" =~ /((?-i:a.))b/i" "((?-i:a.))b" t nil nil nil "AB" nil nil nil)
(1425 "\"a\\nB\" =~ /((?-i:a.))b/i" "((?-i:a.))b" t nil nil nil "a
B" nil nil nil)
(1426 "\"a\\nB\" =~ /((?s-i:a.))b/i" "((?s-i:a.))b" t nil nil nil "a
B" nil "a
B" ("a
" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1427 "\"cabbbb\" =~ /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/" "(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))" nil nil nil nil "cabbbb" nil "cabbbb" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1428 "\"caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\" =~ /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/" "(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))" nil nil nil nil "caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" nil "caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1429 "\"Ab4ab\" =~ /(ab)\\d\\1/i" "(ab)\\d\\1" t nil nil nil "Ab4ab" nil "Ab4ab" ("Ab" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1430 "\"ab4Ab\" =~ /(ab)\\d\\1/i" "(ab)\\d\\1" t nil nil nil "ab4Ab" nil "ab4Ab" ("ab" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1431 "\"foobar1234baz\" =~ /foo\\w*\\d{4}baz/" "foo\\w*\\d{4}baz" nil nil nil nil "foobar1234baz" nil "foobar1234baz" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1432 "\"x~~\" =~ /x(~~)*(?:(?:F)?)?/" "x(~~)*(?:(?:F)?)?" nil nil nil nil "x~~" nil "x~~" ("~~" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1433 "\"aaac\" =~ /^a(?#xxx){3}c/" "^a(?#xxx){3}c" nil nil nil nil "aaac" nil "aaac" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1434 "\"aaac\" =~ /^a(?#xxx)(?#xxx){3}c/" "^a(?#xxx)(?#xxx){3}c" nil nil nil nil "aaac" nil "aaac" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1435 "\"aaac\" =~ /^a (?#xxx) (?#yyy) {3}c/x" "^a (?#xxx) (?#yyy) {3}c" nil nil nil t "aaac" nil "aaac" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1436 "\"B\\nB\" =~ /(?<![cd])b/" "(?<![cd])b" nil nil nil nil "B
B" nil nil nil)
(1437 "\"dbcb\" =~ /(?<![cd])b/" "(?<![cd])b" nil nil nil nil "dbcb" nil nil nil)
(1438 "\"dbaacb\" =~ /(?<![cd])[ab]/" "(?<![cd])[ab]" nil nil nil nil "dbaacb" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1439 "\"dbaacb\" =~ /(?<!(c|d))[ab]/" "(?<!(c|d))[ab]" nil nil nil nil "dbaacb" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1440 "\"cdaccb\" =~ /(?<!cd)[ab]/" "(?<!cd)[ab]" nil nil nil nil "cdaccb" nil "b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1441 "\"dbcb\" =~ /^(?:a?b?)*$/" "^(?:a?b?)*$" nil nil nil nil "dbcb" nil nil nil)
(1442 "\"a--\" =~ /^(?:a?b?)*$/" "^(?:a?b?)*$" nil nil nil nil "a--" nil nil nil)
(1443 "\"a\\nb\\nc\\n\" =~ /((?s)^a(.))((?m)^b$)/" "((?s)^a(.))((?m)^b$)" nil nil nil nil "a
b
c
" nil "a
b" ("a
" "
" "b" nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1444 "\"a\\nb\\nc\\n\" =~ /((?m)^b$)/" "((?m)^b$)" nil nil nil nil "a
b
c
" nil "b" ("b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1445 "\"a\\nb\\n\" =~ /(?m)^b/" "(?m)^b" nil nil nil nil "a
b
" nil "b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1446 "\"a\\nb\\n\" =~ /(?m)^(b)/" "(?m)^(b)" nil nil nil nil "a
b
" nil "b" ("b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1447 "\"a\\nb\\n\" =~ /((?m)^b)/" "((?m)^b)" nil nil nil nil "a
b
" nil "b" ("b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1448 "\"a\\nb\\n\" =~ /\\n((?m)^b)/" "\\n((?m)^b)" nil nil nil nil "a
b
" nil "
b" ("b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1449 "\"a\\nb\\nc\\n\" =~ /((?s).)c(?!.)/" "((?s).)c(?!.)" nil nil nil nil "a
b
c
" nil "
c" ("
" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1450 "\"a\\nb\\nc\\n\" =~ /((?s).)c(?!.)/" "((?s).)c(?!.)" nil nil nil nil "a
b
c
" nil "
c" ("
" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1451 "\"a\\nb\\nc\\n\" =~ /((?s)b.)c(?!.)/" "((?s)b.)c(?!.)" nil nil nil nil "a
b
c
" nil "b
c" ("b
" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1452 "\"a\\nb\\nc\\n\" =~ /((?s)b.)c(?!.)/" "((?s)b.)c(?!.)" nil nil nil nil "a
b
c
" nil "b
c" ("b
" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1453 "\"a\\nb\\nc\\n\" =~ /()^b/" "()^b" nil nil nil nil "a
b
c
" nil nil nil)
(1454 "\"a\\nb\\nc\\n\" =~ /()^b/" "()^b" nil nil nil nil "a
b
c
" nil nil nil)
(1455 "\"a\\nb\\nc\\n\" =~ /((?m)^b)/" "((?m)^b)" nil nil nil nil "a
b
c
" nil "b" ("b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1456 "\"a\" =~ /(?(1)b|a)/" "(?(1)b|a)" nil nil nil nil "a" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1457 "\"a\" =~ /(x)?(?(1)a|b)/" "(x)?(?(1)a|b)" nil nil nil nil "a" nil nil nil)
(1458 "\"a\" =~ /(x)?(?(1)a|b)/" "(x)?(?(1)a|b)" nil nil nil nil "a" nil nil nil)
(1459 "\"a\" =~ /(x)?(?(1)b|a)/" "(x)?(?(1)b|a)" nil nil nil nil "a" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1460 "\"a\" =~ /()?(?(1)b|a)/" "()?(?(1)b|a)" nil nil nil nil "a" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1461 "\"a\" =~ /()?(?(1)a|b)/" "()?(?(1)a|b)" nil nil nil nil "a" nil "a" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1462 "\"(blah)\" =~ /^(\\()?blah(?(1)(\\)))$/" "^(\\()?blah(?(1)(\\)))$" nil nil nil nil "(blah)" nil "(blah)" ("(" ")" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1463 "\"blah\" =~ /^(\\()?blah(?(1)(\\)))$/" "^(\\()?blah(?(1)(\\)))$" nil nil nil nil "blah" nil "blah" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1464 "\"a\" =~ /^(\\()?blah(?(1)(\\)))$/" "^(\\()?blah(?(1)(\\)))$" nil nil nil nil "a" nil nil nil)
(1465 "\"blah)\" =~ /^(\\()?blah(?(1)(\\)))$/" "^(\\()?blah(?(1)(\\)))$" nil nil nil nil "blah)" nil nil nil)
(1466 "\"(blah\" =~ /^(\\()?blah(?(1)(\\)))$/" "^(\\()?blah(?(1)(\\)))$" nil nil nil nil "(blah" nil nil nil)
(1467 "\"(blah)\" =~ /^(\\(+)?blah(?(1)(\\)))$/" "^(\\(+)?blah(?(1)(\\)))$" nil nil nil nil "(blah)" nil "(blah)" ("(" ")" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1468 "\"blah\" =~ /^(\\(+)?blah(?(1)(\\)))$/" "^(\\(+)?blah(?(1)(\\)))$" nil nil nil nil "blah" nil "blah" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1469 "\"blah)\" =~ /^(\\(+)?blah(?(1)(\\)))$/" "^(\\(+)?blah(?(1)(\\)))$" nil nil nil nil "blah)" nil nil nil)
(1470 "\"(blah\" =~ /^(\\(+)?blah(?(1)(\\)))$/" "^(\\(+)?blah(?(1)(\\)))$" nil nil nil nil "(blah" nil nil nil)
(1471 "\"a\" =~ /(?(?!a)b|a)/" "(?(?!a)b|a)" nil nil nil nil "a" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1472 "\"a\" =~ /(?(?=a)b|a)/" "(?(?=a)b|a)" nil nil nil nil "a" nil nil nil)
(1473 "\"a\" =~ /(?(?=a)b|a)/" "(?(?=a)b|a)" nil nil nil nil "a" nil nil nil)
(1474 "\"a\" =~ /(?(?=a)a|b)/" "(?(?=a)a|b)" nil nil nil nil "a" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1475 "\"aaab\" =~ /(?=(a+?))(\\1ab)/" "(?=(a+?))(\\1ab)" nil nil nil nil "aaab" nil "aab" ("a" "aab" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1476 "\"one:\" =~ /(\\w+:)+/" "(\\w+:)+" nil nil nil nil "one:" nil "one:" ("one:" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1477 "\"a\" =~ /$(?<=^(a))/" "$(?<=^(a))" nil nil nil nil "a" nil "" ("a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1478 "\"aaab\" =~ /(?=(a+?))(\\1ab)/" "(?=(a+?))(\\1ab)" nil nil nil nil "aaab" nil "aab" ("a" "aab" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1479 "\"aaab\" =~ /^(?=(a+?))\\1ab/" "^(?=(a+?))\\1ab" nil nil nil nil "aaab" nil nil nil)
(1480 "\"aaab\" =~ /^(?=(a+?))\\1ab/" "^(?=(a+?))\\1ab" nil nil nil nil "aaab" nil nil nil)
(1481 "\"abcd\" =~ /([\\w:]+::)?(\\w+)$/" "([\\w:]+::)?(\\w+)$" nil nil nil nil "abcd" nil "abcd" (nil "abcd" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1482 "\"xy:z:::abcd\" =~ /([\\w:]+::)?(\\w+)$/" "([\\w:]+::)?(\\w+)$" nil nil nil nil "xy:z:::abcd" nil "xy:z:::abcd" ("xy:z:::" "abcd" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1483 "\"aexycd\" =~ /^[^bcd]*(c+)/" "^[^bcd]*(c+)" nil nil nil nil "aexycd" nil "aexyc" ("c" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1484 "\"caab\" =~ /(a*)b+/" "(a*)b+" nil nil nil nil "caab" nil "aab" ("aa" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1485 "\"abcd\" =~ /([\\w:]+::)?(\\w+)$/" "([\\w:]+::)?(\\w+)$" nil nil nil nil "abcd" nil "abcd" (nil "abcd" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1486 "\"xy:z:::abcd\" =~ /([\\w:]+::)?(\\w+)$/" "([\\w:]+::)?(\\w+)$" nil nil nil nil "xy:z:::abcd" nil "xy:z:::abcd" ("xy:z:::" "abcd" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1487 "\"abcd:\" =~ /([\\w:]+::)?(\\w+)$/" "([\\w:]+::)?(\\w+)$" nil nil nil nil "abcd:" nil nil nil)
(1488 "\"abcd:\" =~ /([\\w:]+::)?(\\w+)$/" "([\\w:]+::)?(\\w+)$" nil nil nil nil "abcd:" nil nil nil)
(1489 "\"aexycd\" =~ /^[^bcd]*(c+)/" "^[^bcd]*(c+)" nil nil nil nil "aexycd" nil "aexyc" ("c" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1490 "\"aaab\" =~ /(?>a+)b/" "(?>a+)b" nil nil nil nil "aaab" nil "aaab" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1491 "\"a:[b]:\" =~ /([[:]+)/" "([[:]+)" nil nil nil nil "a:[b]:" nil ":[" (":[" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1492 "\"a=[b]=\" =~ /([[=]+)/" "([[=]+)" nil nil nil nil "a=[b]=" nil "=[" ("=[" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1493 "\"a.[b].\" =~ /([[.]+)/" "([[.]+)" nil nil nil nil "a.[b]." nil ".[" (".[" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1494 "\"aaab\" =~ /((?>a+)b)/" "((?>a+)b)" nil nil nil nil "aaab" nil "aaab" ("aaab" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1495 "\"aaab\" =~ /(?>(a+))b/" "(?>(a+))b" nil nil nil nil "aaab" nil "aaab" ("aaa" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1496 "\"((abc(ade)ufh()()x\" =~ /((?>[^()]+)|\\([^()]*\\))+/" "((?>[^()]+)|\\([^()]*\\))+" nil nil nil nil "((abc(ade)ufh()()x" nil "abc(ade)ufh()()x" ("x" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1497 "\"aaab\" =~ /a\\Z/" "a\\Z" nil nil nil nil "aaab" nil nil nil)
(1498 "\"a\\nb\\n\" =~ /a\\Z/" "a\\Z" nil nil nil nil "a
b
" nil nil nil)
(1499 "\"a\\nb\\n\" =~ /b\\Z/" "b\\Z" nil nil nil nil "a
b
" nil "b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1500 "\"a\\nb\" =~ /b\\Z/" "b\\Z" nil nil nil nil "a
b" nil "b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1501 "\"a\\nb\" =~ /b\\z/" "b\\z" nil nil nil nil "a
b" nil "b" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1502 "\"a\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "a" nil "a" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1503 "\"abc\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "abc" nil "abc" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1504 "\"a-b\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "a-b" nil "a-b" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1505 "\"0-9\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "0-9" nil "0-9" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1506 "\"a.b\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "a.b" nil "a.b" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1507 "\"5.6.7\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "5.6.7" nil "5.6.7" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1508 "\"the.quick.brown.fox\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "the.quick.brown.fox" nil "the.quick.brown.fox" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1509 "\"a100.b200.300c\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "a100.b200.300c" nil "a100.b200.300c" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1510 "\"12-ab.1245\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "12-ab.1245" nil "12-ab.1245" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1511 "\"\\\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "" nil nil nil)
(1512 "\".a\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil ".a" nil nil nil)
(1513 "\"-a\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "-a" nil nil nil)
(1514 "\"a-\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "a-" nil nil nil)
(1515 "\"a.\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "a." nil nil nil)
(1516 "\"a_b\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "a_b" nil nil nil)
(1517 "\"a.-\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "a.-" nil nil nil)
(1518 "\"a..\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "a.." nil nil nil)
(1519 "\"ab..bc\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "ab..bc" nil nil nil)
(1520 "\"the.quick.brown.fox-\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "the.quick.brown.fox-" nil nil nil)
(1521 "\"the.quick.brown.fox.\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "the.quick.brown.fox." nil nil nil)
(1522 "\"the.quick.brown.fox_\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "the.quick.brown.fox_" nil nil nil)
(1523 "\"the.quick.brown.fox+\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "the.quick.brown.fox+" nil nil nil)
(1524 "\"alphabetabcd\" =~ /(?>.*)(?<=(abcd|wxyz))/" "(?>.*)(?<=(abcd|wxyz))" nil nil nil nil "alphabetabcd" nil "alphabetabcd" ("abcd" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1525 "\"endingwxyz\" =~ /(?>.*)(?<=(abcd|wxyz))/" "(?>.*)(?<=(abcd|wxyz))" nil nil nil nil "endingwxyz" nil "endingwxyz" ("wxyz" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1526 "\"a rather long string that doesn't end with one of them\" =~ /(?>.*)(?<=(abcd|wxyz))/" "(?>.*)(?<=(abcd|wxyz))" nil nil nil nil "a rather long string that doesn't end with one of them" nil nil nil)
(1527 "\"word cat dog elephant mussel cow horse canary baboon snake shark otherword\" =~ /word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/" "word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword" nil nil nil nil "word cat dog elephant mussel cow horse canary baboon snake shark otherword" nil "word cat dog elephant mussel cow horse canary baboon snake shark otherword" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1528 "\"word cat dog elephant mussel cow horse canary baboon snake shark\" =~ /word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/" "word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword" nil nil nil nil "word cat dog elephant mussel cow horse canary baboon snake shark" nil nil nil)
(1529 "\"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\" =~ /word (?>[a-zA-Z0-9]+ ){0,30}otherword/" "word (?>[a-zA-Z0-9]+ ){0,30}otherword" nil nil nil nil "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" nil nil nil)
(1530 "\"999foo\" =~ /(?<=\\d{3}(?!999))foo/" "(?<=\\d{3}(?!999))foo" nil nil nil nil "999foo" nil "foo" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1531 "\"123999foo\" =~ /(?<=\\d{3}(?!999))foo/" "(?<=\\d{3}(?!999))foo" nil nil nil nil "123999foo" nil "foo" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1532 "\"123abcfoo\" =~ /(?<=\\d{3}(?!999))foo/" "(?<=\\d{3}(?!999))foo" nil nil nil nil "123abcfoo" nil nil nil)
(1533 "\"999foo\" =~ /(?<=(?!...999)\\d{3})foo/" "(?<=(?!...999)\\d{3})foo" nil nil nil nil "999foo" nil "foo" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1534 "\"123999foo\" =~ /(?<=(?!...999)\\d{3})foo/" "(?<=(?!...999)\\d{3})foo" nil nil nil nil "123999foo" nil "foo" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1535 "\"123abcfoo\" =~ /(?<=(?!...999)\\d{3})foo/" "(?<=(?!...999)\\d{3})foo" nil nil nil nil "123abcfoo" nil nil nil)
(1536 "\"123abcfoo\" =~ /(?<=\\d{3}(?!999)...)foo/" "(?<=\\d{3}(?!999)...)foo" nil nil nil nil "123abcfoo" nil "foo" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1537 "\"123456foo\" =~ /(?<=\\d{3}(?!999)...)foo/" "(?<=\\d{3}(?!999)...)foo" nil nil nil nil "123456foo" nil "foo" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1538 "\"123999foo\" =~ /(?<=\\d{3}(?!999)...)foo/" "(?<=\\d{3}(?!999)...)foo" nil nil nil nil "123999foo" nil nil nil)
(1539 "\"123abcfoo\" =~ /(?<=\\d{3}...)(?<!999)foo/" "(?<=\\d{3}...)(?<!999)foo" nil nil nil nil "123abcfoo" nil "foo" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1540 "\"123456foo\" =~ /(?<=\\d{3}...)(?<!999)foo/" "(?<=\\d{3}...)(?<!999)foo" nil nil nil nil "123456foo" nil "foo" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1541 "\"123999foo\" =~ /(?<=\\d{3}...)(?<!999)foo/" "(?<=\\d{3}...)(?<!999)foo" nil nil nil nil "123999foo" nil nil nil)
(1542 "\"<a href=abcd xyz\" =~ /<a[\\s]+href[\\s]*=[\\s]* # find <a href=
([\\\"\\'])? # find single or double quote
(?(1) (.*?)\\1 | ([^\\s]+)) # if quote found, match up to next matching
# quote, otherwise match up to next space
/isx" "<a[\\s]+href[\\s]*=[\\s]* # find <a href=
([\\\"\\'])? # find single or double quote
(?(1) (.*?)\\1 | ([^\\s]+)) # if quote found, match up to next matching
# quote, otherwise match up to next space
" t nil t t "<a href=abcd xyz" nil "<a href=abcd" (nil nil "abcd" nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1543 "\"<a href=\\\"abcd xyz pqr\\\" cats\" =~ /<a[\\s]+href[\\s]*=[\\s]* # find <a href=
([\\\"\\'])? # find single or double quote
(?(1) (.*?)\\1 | ([^\\s]+)) # if quote found, match up to next matching
# quote, otherwise match up to next space
/isx" "<a[\\s]+href[\\s]*=[\\s]* # find <a href=
([\\\"\\'])? # find single or double quote
(?(1) (.*?)\\1 | ([^\\s]+)) # if quote found, match up to next matching
# quote, otherwise match up to next space
" t nil t t "<a href=\"abcd xyz pqr\" cats" nil "<a href=\"abcd xyz pqr\"" ("\"" "abcd xyz pqr" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1544 "\"<a href=\\'abcd xyz pqr\\' cats\" =~ /<a[\\s]+href[\\s]*=[\\s]* # find <a href=
([\\\"\\'])? # find single or double quote
(?(1) (.*?)\\1 | ([^\\s]+)) # if quote found, match up to next matching
# quote, otherwise match up to next space
/isx" "<a[\\s]+href[\\s]*=[\\s]* # find <a href=
([\\\"\\'])? # find single or double quote
(?(1) (.*?)\\1 | ([^\\s]+)) # if quote found, match up to next matching
# quote, otherwise match up to next space
" t nil t t "<a href='abcd xyz pqr' cats" nil "<a href='abcd xyz pqr'" ("'" "abcd xyz pqr" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1545 "\"<a href=abcd xyz\" =~ /<a\\s+href\\s*=\\s* # find <a href=
([\"'])? # find single or double quote
(?(1) (.*?)\\1 | (\\S+)) # if quote found, match up to next matching
# quote, otherwise match up to next space
/isx" "<a\\s+href\\s*=\\s* # find <a href=
([\"'])? # find single or double quote
(?(1) (.*?)\\1 | (\\S+)) # if quote found, match up to next matching
# quote, otherwise match up to next space
" t nil t t "<a href=abcd xyz" nil "<a href=abcd" (nil nil "abcd" nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1546 "\"<a href=\\\"abcd xyz pqr\\\" cats\" =~ /<a\\s+href\\s*=\\s* # find <a href=
([\"'])? # find single or double quote
(?(1) (.*?)\\1 | (\\S+)) # if quote found, match up to next matching
# quote, otherwise match up to next space
/isx" "<a\\s+href\\s*=\\s* # find <a href=
([\"'])? # find single or double quote
(?(1) (.*?)\\1 | (\\S+)) # if quote found, match up to next matching
# quote, otherwise match up to next space
" t nil t t "<a href=\"abcd xyz pqr\" cats" nil "<a href=\"abcd xyz pqr\"" ("\"" "abcd xyz pqr" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1547 "\"<a href = \\'abcd xyz pqr\\' cats\" =~ /<a\\s+href\\s*=\\s* # find <a href=
([\"'])? # find single or double quote
(?(1) (.*?)\\1 | (\\S+)) # if quote found, match up to next matching
# quote, otherwise match up to next space
/isx" "<a\\s+href\\s*=\\s* # find <a href=
([\"'])? # find single or double quote
(?(1) (.*?)\\1 | (\\S+)) # if quote found, match up to next matching
# quote, otherwise match up to next space
" t nil t t "<a href = 'abcd xyz pqr' cats" nil "<a href = 'abcd xyz pqr'" ("'" "abcd xyz pqr" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1548 "\"<a href=abcd xyz\" =~ /<a\\s+href(?>\\s*)=(?>\\s*) # find <a href=
([\"'])? # find single or double quote
(?(1) (.*?)\\1 | (\\S+)) # if quote found, match up to next matching
# quote, otherwise match up to next space
/isx" "<a\\s+href(?>\\s*)=(?>\\s*) # find <a href=
([\"'])? # find single or double quote
(?(1) (.*?)\\1 | (\\S+)) # if quote found, match up to next matching
# quote, otherwise match up to next space
" t nil t t "<a href=abcd xyz" nil "<a href=abcd" (nil nil "abcd" nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1549 "\"<a href=\\\"abcd xyz pqr\\\" cats\" =~ /<a\\s+href(?>\\s*)=(?>\\s*) # find <a href=
([\"'])? # find single or double quote
(?(1) (.*?)\\1 | (\\S+)) # if quote found, match up to next matching
# quote, otherwise match up to next space
/isx" "<a\\s+href(?>\\s*)=(?>\\s*) # find <a href=
([\"'])? # find single or double quote
(?(1) (.*?)\\1 | (\\S+)) # if quote found, match up to next matching
# quote, otherwise match up to next space
" t nil t t "<a href=\"abcd xyz pqr\" cats" nil "<a href=\"abcd xyz pqr\"" ("\"" "abcd xyz pqr" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1550 "\"<a href = \\'abcd xyz pqr\\' cats\" =~ /<a\\s+href(?>\\s*)=(?>\\s*) # find <a href=
([\"'])? # find single or double quote
(?(1) (.*?)\\1 | (\\S+)) # if quote found, match up to next matching
# quote, otherwise match up to next space
/isx" "<a\\s+href(?>\\s*)=(?>\\s*) # find <a href=
([\"'])? # find single or double quote
(?(1) (.*?)\\1 | (\\S+)) # if quote found, match up to next matching
# quote, otherwise match up to next space
" t nil t t "<a href = 'abcd xyz pqr' cats" nil "<a href = 'abcd xyz pqr'" ("'" "abcd xyz pqr" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1551 "\"ZABCDEFG\" =~ /((Z)+|A)*/" "((Z)+|A)*" nil nil nil nil "ZABCDEFG" nil "ZA" ("A" "Z" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1552 "\"ZABCDEFG\" =~ /(Z()|A)*/" "(Z()|A)*" nil nil nil nil "ZABCDEFG" nil "ZA" ("A" "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1553 "\"ZABCDEFG\" =~ /(Z(())|A)*/" "(Z(())|A)*" nil nil nil nil "ZABCDEFG" nil "ZA" ("A" "" "" nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1554 "\"ZABCDEFG\" =~ /((?>Z)+|A)*/" "((?>Z)+|A)*" nil nil nil nil "ZABCDEFG" nil "ZA" ("A" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1555 "\"ZABCDEFG\" =~ /((?>)+|A)*/" "((?>)+|A)*" nil nil nil nil "ZABCDEFG" nil "" ("" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1556 "\"abbab\" =~ /a*/" "a*" nil nil nil nil "abbab" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1557 "\"abcde\" =~ /^[a-\\d]/" "^[a-\\d]" nil nil nil nil "abcde" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1558 "\"-things\" =~ /^[a-\\d]/" "^[a-\\d]" nil nil nil nil "-things" nil "-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1559 "\"0digit\" =~ /^[a-\\d]/" "^[a-\\d]" nil nil nil nil "0digit" nil "0" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1560 "\"bcdef\" =~ /^[a-\\d]/" "^[a-\\d]" nil nil nil nil "bcdef" nil nil nil)
(1561 "\"abcde\" =~ /^[\\d-a]/" "^[\\d-a]" nil nil nil nil "abcde" nil "a" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1562 "\"-things\" =~ /^[\\d-a]/" "^[\\d-a]" nil nil nil nil "-things" nil "-" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1563 "\"0digit\" =~ /^[\\d-a]/" "^[\\d-a]" nil nil nil nil "0digit" nil "0" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1564 "\"bcdef\" =~ /^[\\d-a]/" "^[\\d-a]" nil nil nil nil "bcdef" nil nil nil)
(1565 "\"abcdef\" =~ /(?<=abc).*(?=def)/" "(?<=abc).*(?=def)" nil nil nil nil "abcdef" nil "" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1566 "\"abcxdef\" =~ /(?<=abc).*(?=def)/" "(?<=abc).*(?=def)" nil nil nil nil "abcxdef" nil "x" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1567 "\"abcxdefxdef\" =~ /(?<=abc).*(?=def)/" "(?<=abc).*(?=def)" nil nil nil nil "abcxdefxdef" nil "xdefx" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1568 "\"abcdef\" =~ /(?<=abc).*?(?=def)/" "(?<=abc).*?(?=def)" nil nil nil nil "abcdef" nil "" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1569 "\"abcxdef\" =~ /(?<=abc).*?(?=def)/" "(?<=abc).*?(?=def)" nil nil nil nil "abcxdef" nil "x" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1570 "\"abcxdefxdef\" =~ /(?<=abc).*?(?=def)/" "(?<=abc).*?(?=def)" nil nil nil nil "abcxdefxdef" nil "x" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1571 "\"abcdef\" =~ /(?<=abc).+(?=def)/" "(?<=abc).+(?=def)" nil nil nil nil "abcdef" nil nil nil)
(1572 "\"abcxdef\" =~ /(?<=abc).+(?=def)/" "(?<=abc).+(?=def)" nil nil nil nil "abcxdef" nil "x" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1573 "\"abcxdefxdef\" =~ /(?<=abc).+(?=def)/" "(?<=abc).+(?=def)" nil nil nil nil "abcxdefxdef" nil "xdefx" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1574 "\"abcdef\" =~ /(?<=abc).+?(?=def)/" "(?<=abc).+?(?=def)" nil nil nil nil "abcdef" nil nil nil)
(1575 "\"abcxdef\" =~ /(?<=abc).+?(?=def)/" "(?<=abc).+?(?=def)" nil nil nil nil "abcxdef" nil "x" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1576 "\"abcxdefxdef\" =~ /(?<=abc).+?(?=def)/" "(?<=abc).+?(?=def)" nil nil nil nil "abcxdefxdef" nil "x" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1577 "\"-abcdef\" =~ /(?<=\\b)(.*)/" "(?<=\\b)(.*)" nil nil nil nil "-abcdef" nil "abcdef" ("abcdef" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1578 "\"abcdef\" =~ /(?<=\\b)(.*)/" "(?<=\\b)(.*)" nil nil nil nil "abcdef" nil "abcdef" ("abcdef" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1579 "\"-abcdef\" =~ /(?<=\\B)(.*)/" "(?<=\\B)(.*)" nil nil nil nil "-abcdef" nil "-abcdef" ("-abcdef" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1580 "\"abcdef\" =~ /(?<=\\B)(.*)/" "(?<=\\B)(.*)" nil nil nil nil "abcdef" nil "bcdef" ("bcdef" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1581 "\"'a'\" =~ /^'[ab]'/" "^'[ab]'" nil nil nil nil "'a'" nil "'a'" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1582 "\"'b'\" =~ /^'[ab]'/" "^'[ab]'" nil nil nil nil "'b'" nil "'b'" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1583 "\"x'a'\" =~ /^'[ab]'/" "^'[ab]'" nil nil nil nil "x'a'" nil nil nil)
(1584 "\"'a'x\" =~ /^'[ab]'/" "^'[ab]'" nil nil nil nil "'a'x" nil "'a'" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1585 "\"'ab'\" =~ /^'[ab]'/" "^'[ab]'" nil nil nil nil "'ab'" nil nil nil)
(1586 "\"'a'\" =~ /^'[ab]'$/" "^'[ab]'$" nil nil nil nil "'a'" nil "'a'" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1587 "\"'b'\" =~ /^'[ab]'$/" "^'[ab]'$" nil nil nil nil "'b'" nil "'b'" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1588 "\"x'a'\" =~ /^'[ab]'$/" "^'[ab]'$" nil nil nil nil "x'a'" nil nil nil)
(1589 "\"'a'x\" =~ /^'[ab]'$/" "^'[ab]'$" nil nil nil nil "'a'x" nil nil nil)
(1590 "\"'ab'\" =~ /^'[ab]'$/" "^'[ab]'$" nil nil nil nil "'ab'" nil nil nil)
(1591 "\"'a'\" =~ /'[ab]'$/" "'[ab]'$" nil nil nil nil "'a'" nil "'a'" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1592 "\"'b'\" =~ /'[ab]'$/" "'[ab]'$" nil nil nil nil "'b'" nil "'b'" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1593 "\"x'a'\" =~ /'[ab]'$/" "'[ab]'$" nil nil nil nil "x'a'" nil "'a'" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1594 "\"'a'x\" =~ /'[ab]'$/" "'[ab]'$" nil nil nil nil "'a'x" nil nil nil)
(1595 "\"'ab'\" =~ /'[ab]'$/" "'[ab]'$" nil nil nil nil "'ab'" nil nil nil)
(1596 "\"'a'\" =~ /'[ab]'/" "'[ab]'" nil nil nil nil "'a'" nil "'a'" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1597 "\"'b'\" =~ /'[ab]'/" "'[ab]'" nil nil nil nil "'b'" nil "'b'" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1598 "\"x'a'\" =~ /'[ab]'/" "'[ab]'" nil nil nil nil "x'a'" nil "'a'" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1599 "\"'a'x\" =~ /'[ab]'/" "'[ab]'" nil nil nil nil "'a'x" nil "'a'" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1600 "\"'ab'\" =~ /'[ab]'/" "'[ab]'" nil nil nil nil "'ab'" nil nil nil)
(1601 "\"abc\" =~ /abc\\E/" "abc\\E" nil nil nil nil "abc" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1602 "\"abcE\" =~ /abc\\E/" "abc\\E" nil nil nil nil "abcE" nil "abc" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1603 "\"abcx\" =~ /abc[\\Ex]/" "abc[\\Ex]" nil nil nil nil "abcx" nil "abcx" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1604 "\"abcE\" =~ /abc[\\Ex]/" "abc[\\Ex]" nil nil nil nil "abcE" nil nil nil)
(1605 "\"a*\" =~ /^\\Qa*\\E$/" "^\\Qa*\\E$" nil nil nil nil "a*" nil "a*" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1606 "\"a\" =~ /^\\Qa*\\E$/" "^\\Qa*\\E$" nil nil nil nil "a" nil nil nil)
(1607 "\"a*x\" =~ /\\Qa*x\\E/" "\\Qa*x\\E" nil nil nil nil "a*x" nil "a*x" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1608 "\"a*\" =~ /\\Qa*x\\E/" "\\Qa*x\\E" nil nil nil nil "a*" nil nil nil)
(1609 "\"a*x\" =~ /\\Qa*x/" "\\Qa*x" nil nil nil nil "a*x" nil "a*x" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1610 "\"a*\" =~ /\\Qa*x/" "\\Qa*x" nil nil nil nil "a*" nil nil nil)
(1611 "\"a*x\" =~ /\\Q\\Qa*x\\E\\E/" "\\Q\\Qa*x\\E\\E" nil nil nil nil "a*x" nil nil nil)
(1612 "\"a\\\\*x\" =~ /\\Q\\Qa*x\\E\\E/" "\\Q\\Qa*x\\E\\E" nil nil nil nil "a\\*x" nil "a\\*x" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1613 "\"a*x\" =~ /\\Q\\Qa*x\\E/" "\\Q\\Qa*x\\E" nil nil nil nil "a*x" nil nil nil)
(1614 "\"a\\\\*x\" =~ /\\Q\\Qa*x\\E/" "\\Q\\Qa*x\\E" nil nil nil nil "a\\*x" nil "a\\*x" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1615 "\"a[x]\" =~ /a\\Q[x\\E]/" "a\\Q[x\\E]" nil nil nil nil "a[x]" nil "a[x]" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1616 "\"ax\" =~ /a\\Q[x\\E]/" "a\\Q[x\\E]" nil nil nil nil "ax" nil nil nil)
(1617 "\"a\" =~ /a#comment\\Q...
{2}/x" "a#comment\\Q...
{2}" nil nil nil t "a" nil nil nil)
(1618 "\"aa\" =~ /a#comment\\Q...
{2}/x" "a#comment\\Q...
{2}" nil nil nil t "aa" nil "aa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1619 "\"a\" =~ /a(?#comment\\Q...
){2}/x" "a(?#comment\\Q...
){2}" nil nil nil t "a" nil nil nil)
(1620 "\"aa\" =~ /a(?#comment\\Q...
){2}/x" "a(?#comment\\Q...
){2}" nil nil nil t "aa" nil "aa" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1621 "\"a.\" =~ /(?x)a#\\Q
./" "(?x)a#\\Q
." nil nil nil nil "a." nil "a." (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1622 "\"aa\" =~ /(?x)a#\\Q
./" "(?x)a#\\Q
." nil nil nil nil "aa" nil nil nil)
(1623 "\"abcdxklqj\" =~ /ab(?=.*q)cd/" "ab(?=.*q)cd" nil nil nil nil "abcdxklqj" nil "abcd" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1624 "\"ab\" =~ /a(?!.*$)b/" "a(?!.*$)b" nil nil nil nil "ab" nil nil nil)
(1625 "\"Axi\" =~ /.{2}[a-z]/" ".{2}[a-z]" nil nil nil nil "Axi" nil "Axi" (nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1626 "\"aaaaaaaaaac\" =~ /((a{0,5}){0,5}){0,5}c/" "((a{0,5}){0,5}){0,5}c" nil nil nil nil "aaaaaaaaaac" nil "aaaaaaaaaac" ("" "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1627 "\"aaaaaaaaaa\" =~ /((a{0,5}){0,5}){0,5}c/" "((a{0,5}){0,5}){0,5}c" nil nil nil nil "aaaaaaaaaa" nil nil nil)
(1628 "\"aaaaaaaaaac\" =~ /((a{0,5}){0,5})*c/" "((a{0,5}){0,5})*c" nil nil nil nil "aaaaaaaaaac" nil "aaaaaaaaaac" ("" "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
(1629 "\"aaaaaaaaaa\" =~ /((a{0,5}){0,5})*c/" "((a{0,5}){0,5})*c" nil nil nil nil "aaaaaaaaaa" nil nil nil)