(defparameter cl-ppcre-test::*testdata* nil) (push (list 1 "\"the quick brown fox\" =~ /the quick brown fox/" "the quick brown fox" nil nil nil nil "the quick brown fox" nil 1 0 "the quick brown fox" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 2 "\"The quick brown FOX\" =~ /the quick brown fox/" "the quick brown fox" nil nil nil nil "The quick brown FOX" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 "the quick brown fox" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 5 "\"the quick brown fox\" =~ /The quick brown fox/i" "The quick brown fox" t nil nil nil "the quick brown fox" nil 1 0 "the quick brown fox" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 6 "\"The quick brown FOX\" =~ /The quick brown fox/i" "The quick brown fox" t nil nil nil "The quick brown FOX" nil 1 0 "The quick brown FOX" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "the quick brown fox" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "THE QUICK BROWN FOX" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 (cl-ppcre::string-list-to-simple-string (let (list) (push "abcd" list) (push (list (code-char 9)) list) (push (list (code-char 10)) list) (push (list (code-char 13)) list) (push (list (code-char 12)) list) (push (list (code-char 7)) list) (push (list (code-char 27)) list) (push "9;$\\?caxyz" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "abcd" list) (push (list (code-char 9)) list) (push (list (code-char 10)) list) (push (list (code-char 13)) list) (push (list (code-char 12)) list) (push (list (code-char 7)) list) (push (list (code-char 27)) list) (push "9;$\\?caxyz" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "abxyzpqrrrabbxyyyypqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "abxyzpqrrrabbxyyyypqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aabxyzpqrrrabbxyyyypqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aaabxyzpqrrrabbxyyyypqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aaaabxyzpqrrrabbxyyyypqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "abcxyzpqrrrabbxyyyypqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aabcxyzpqrrrabbxyyyypqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aaabcxyzpqrrrabbxyyyypAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aaabcxyzpqrrrabbxyyyypqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aaabcxyzpqrrrabbxyyyypqqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aaabcxyzpqrrrabbxyyyypqqqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aaabcxyzpqrrrabbxyyyypqqqqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aaabcxyzpqrrrabbxyyyypqqqqqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aaabcxyzpqrrrabbxyyyypqqqqqqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aaaabcxyzpqrrrabbxyyyypqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "abxyzzpqrrrabbxyyyypqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aabxyzzzpqrrrabbxyyyypqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aaabxyzzzzpqrrrabbxyyyypqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aaaabxyzzzzpqrrrabbxyyyypqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "abcxyzzpqrrrabbxyyyypqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aabcxyzzzpqrrrabbxyyyypqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aaabcxyzzzzpqrrrabbxyyyypqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aaaabcxyzzzzpqrrrabbxyyyypqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aaaabcxyzzzzpqrrrabbbxyyyypqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aaaabcxyzzzzpqrrrabbbxyyyyypqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aaabcxyzpqrrrabbxyyyypABzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aaabcxyzpqrrrabbxyyyypABBzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aaabxyzpqrrrabbxyyyypqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aaaabxyzpqrrrabbxyyyypqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "abcxyzpqrrrabbxyyyypqAzz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 46 "\"abczz\" =~ /^(abc){1,2}zz/" "^(abc){1,2}zz" nil nil nil nil "abczz" nil 1 0 "abczz" (list "abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 47 "\"abcabczz\" =~ /^(abc){1,2}zz/" "^(abc){1,2}zz" nil nil nil nil "abcabczz" nil 1 0 "abcabczz" (list "abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 48 "\"zz\" =~ /^(abc){1,2}zz/" "^(abc){1,2}zz" nil nil nil nil "zz" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 49 "\"abcabcabczz\" =~ /^(abc){1,2}zz/" "^(abc){1,2}zz" nil nil nil nil "abcabcabczz" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 50 "\">>abczz\" =~ /^(abc){1,2}zz/" "^(abc){1,2}zz" nil nil nil nil ">>abczz" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 51 "\"bc\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "bc" nil 1 0 "bc" (list "b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 52 "\"bbc\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "bbc" nil 1 0 "bbc" (list "b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 53 "\"bbbc\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "bbbc" nil 1 0 "bbbc" (list "bb" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 54 "\"bac\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "bac" nil 1 0 "bac" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 55 "\"bbac\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "bbac" nil 1 0 "bbac" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 56 "\"aac\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "aac" nil 1 0 "aac" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 57 "\"abbbbbbbbbbbc\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "abbbbbbbbbbbc" nil 1 0 "abbbbbbbbbbbc" (list "bbbbbbbbbbb" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 58 "\"bbbbbbbbbbbac\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "bbbbbbbbbbbac" nil 1 0 "bbbbbbbbbbbac" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 59 "\"aaac\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "aaac" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 60 "\"abbbbbbbbbbbac\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "abbbbbbbbbbbac" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 61 "\"bc\" =~ /^(b+|a){1,2}c/" "^(b+|a){1,2}c" nil nil nil nil "bc" nil 1 0 "bc" (list "b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 62 "\"bbc\" =~ /^(b+|a){1,2}c/" "^(b+|a){1,2}c" nil nil nil nil "bbc" nil 1 0 "bbc" (list "bb" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 63 "\"bbbc\" =~ /^(b+|a){1,2}c/" "^(b+|a){1,2}c" nil nil nil nil "bbbc" nil 1 0 "bbbc" (list "bbb" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 64 "\"bac\" =~ /^(b+|a){1,2}c/" "^(b+|a){1,2}c" nil nil nil nil "bac" nil 1 0 "bac" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 65 "\"bbac\" =~ /^(b+|a){1,2}c/" "^(b+|a){1,2}c" nil nil nil nil "bbac" nil 1 0 "bbac" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 66 "\"aac\" =~ /^(b+|a){1,2}c/" "^(b+|a){1,2}c" nil nil nil nil "aac" nil 1 0 "aac" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 67 "\"abbbbbbbbbbbc\" =~ /^(b+|a){1,2}c/" "^(b+|a){1,2}c" nil nil nil nil "abbbbbbbbbbbc" nil 1 0 "abbbbbbbbbbbc" (list "bbbbbbbbbbb" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 68 "\"bbbbbbbbbbbac\" =~ /^(b+|a){1,2}c/" "^(b+|a){1,2}c" nil nil nil nil "bbbbbbbbbbbac" nil 1 0 "bbbbbbbbbbbac" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 69 "\"aaac\" =~ /^(b+|a){1,2}c/" "^(b+|a){1,2}c" nil nil nil nil "aaac" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 70 "\"abbbbbbbbbbbac\" =~ /^(b+|a){1,2}c/" "^(b+|a){1,2}c" nil nil nil nil "abbbbbbbbbbbac" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 71 "\"bbc\" =~ /^(b+|a){1,2}?bc/" "^(b+|a){1,2}?bc" nil nil nil nil "bbc" nil 1 0 "bbc" (list "b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 72 "\"babc\" =~ /^(b*|ba){1,2}?bc/" "^(b*|ba){1,2}?bc" nil nil nil nil "babc" nil 1 0 "babc" (list "ba" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 73 "\"bbabc\" =~ /^(b*|ba){1,2}?bc/" "^(b*|ba){1,2}?bc" nil nil nil nil "bbabc" nil 1 0 "bbabc" (list "ba" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 74 "\"bababc\" =~ /^(b*|ba){1,2}?bc/" "^(b*|ba){1,2}?bc" nil nil nil nil "bababc" nil 1 0 "bababc" (list "ba" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 75 "\"bababbc\" =~ /^(b*|ba){1,2}?bc/" "^(b*|ba){1,2}?bc" nil nil nil nil "bababbc" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 76 "\"babababc\" =~ /^(b*|ba){1,2}?bc/" "^(b*|ba){1,2}?bc" nil nil nil nil "babababc" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 77 "\"babc\" =~ /^(ba|b*){1,2}?bc/" "^(ba|b*){1,2}?bc" nil nil nil nil "babc" nil 1 0 "babc" (list "ba" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 78 "\"bbabc\" =~ /^(ba|b*){1,2}?bc/" "^(ba|b*){1,2}?bc" nil nil nil nil "bbabc" nil 1 0 "bbabc" (list "ba" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 79 "\"bababc\" =~ /^(ba|b*){1,2}?bc/" "^(ba|b*){1,2}?bc" nil nil nil nil "bababc" nil 1 0 "bababc" (list "ba" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 80 "\"bababbc\" =~ /^(ba|b*){1,2}?bc/" "^(ba|b*){1,2}?bc" nil nil nil nil "bababbc" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 81 "\"babababc\" =~ /^(ba|b*){1,2}?bc/" "^(ba|b*){1,2}?bc" nil nil nil nil "babababc" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 82 "\"\\x01\\x01\\e;z\" =~ /^\\ca\\cA\\c[\\c{\\c:/" "^\\ca\\cA\\c[\\c{\\c:" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 1)) list) (push (list (code-char 1)) list) (push (list (code-char 27)) list) (push ";z" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 1)) list) (push (list (code-char 1)) list) (push (list (code-char 27)) list) (push ";z" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 83 "\"athing\" =~ /^[ab\\]cde]/" "^[ab\\]cde]" nil nil nil nil "athing" nil 1 0 "a" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 84 "\"bthing\" =~ /^[ab\\]cde]/" "^[ab\\]cde]" nil nil nil nil "bthing" nil 1 0 "b" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 85 "\"]thing\" =~ /^[ab\\]cde]/" "^[ab\\]cde]" nil nil nil nil "]thing" nil 1 0 "]" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 86 "\"cthing\" =~ /^[ab\\]cde]/" "^[ab\\]cde]" nil nil nil nil "cthing" nil 1 0 "c" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 87 "\"dthing\" =~ /^[ab\\]cde]/" "^[ab\\]cde]" nil nil nil nil "dthing" nil 1 0 "d" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 88 "\"ething\" =~ /^[ab\\]cde]/" "^[ab\\]cde]" nil nil nil nil "ething" nil 1 0 "e" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 89 "\"fthing\" =~ /^[ab\\]cde]/" "^[ab\\]cde]" nil nil nil nil "fthing" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 90 "\"[thing\" =~ /^[ab\\]cde]/" "^[ab\\]cde]" nil nil nil nil "[thing" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 91 "\"\\\\thing\" =~ /^[ab\\]cde]/" "^[ab\\]cde]" nil nil nil nil "\\thing" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 92 "\"]thing\" =~ /^[]cde]/" "^[]cde]" nil nil nil nil "]thing" nil 1 0 "]" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 93 "\"cthing\" =~ /^[]cde]/" "^[]cde]" nil nil nil nil "cthing" nil 1 0 "c" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 94 "\"dthing\" =~ /^[]cde]/" "^[]cde]" nil nil nil nil "dthing" nil 1 0 "d" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 95 "\"ething\" =~ /^[]cde]/" "^[]cde]" nil nil nil nil "ething" nil 1 0 "e" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 96 "\"athing\" =~ /^[]cde]/" "^[]cde]" nil nil nil nil "athing" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 97 "\"fthing\" =~ /^[]cde]/" "^[]cde]" nil nil nil nil "fthing" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 98 "\"fthing\" =~ /^[^ab\\]cde]/" "^[^ab\\]cde]" nil nil nil nil "fthing" nil 1 0 "f" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 99 "\"[thing\" =~ /^[^ab\\]cde]/" "^[^ab\\]cde]" nil nil nil nil "[thing" nil 1 0 "[" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 100 "\"\\\\thing\" =~ /^[^ab\\]cde]/" "^[^ab\\]cde]" nil nil nil nil "\\thing" nil 1 0 "\\" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 101 "\"athing\" =~ /^[^ab\\]cde]/" "^[^ab\\]cde]" nil nil nil nil "athing" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 102 "\"bthing\" =~ /^[^ab\\]cde]/" "^[^ab\\]cde]" nil nil nil nil "bthing" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 103 "\"]thing\" =~ /^[^ab\\]cde]/" "^[^ab\\]cde]" nil nil nil nil "]thing" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 104 "\"cthing\" =~ /^[^ab\\]cde]/" "^[^ab\\]cde]" nil nil nil nil "cthing" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 105 "\"dthing\" =~ /^[^ab\\]cde]/" "^[^ab\\]cde]" nil nil nil nil "dthing" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 106 "\"ething\" =~ /^[^ab\\]cde]/" "^[^ab\\]cde]" nil nil nil nil "ething" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 107 "\"athing\" =~ /^[^]cde]/" "^[^]cde]" nil nil nil nil "athing" nil 1 0 "a" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 108 "\"fthing\" =~ /^[^]cde]/" "^[^]cde]" nil nil nil nil "fthing" nil 1 0 "f" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 109 "\"]thing\" =~ /^[^]cde]/" "^[^]cde]" nil nil nil nil "]thing" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 110 "\"cthing\" =~ /^[^]cde]/" "^[^]cde]" nil nil nil nil "cthing" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 111 "\"dthing\" =~ /^[^]cde]/" "^[^]cde]" nil nil nil nil "dthing" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 112 "\"ething\" =~ /^[^]cde]/" "^[^]cde]" nil nil nil nil "ething" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 113 (cl-ppcre::string-list-to-simple-string (let (list) (push "\"" list) (push (list (code-char 129)) list) (push "\" =~ /^\\" list) (push (list (code-char 129)) list) (push "/" list)(nreverse list))) "^\\" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 129)) list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 129)) list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 114 (cl-ppcre::string-list-to-simple-string (let (list) (push "\"" list) (push (list (code-char 255)) list) (push "\" =~ /^" list) (push (list (code-char 255)) list) (push "/" list)(nreverse list))) "^" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 255)) list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 255)) list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 115 "\"0\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "0" nil 1 0 "0" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 116 "\"1\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "1" nil 1 0 "1" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 117 "\"2\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "2" nil 1 0 "2" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 118 "\"3\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "3" nil 1 0 "3" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 119 "\"4\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "4" nil 1 0 "4" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 120 "\"5\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "5" nil 1 0 "5" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 121 "\"6\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "6" nil 1 0 "6" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 122 "\"7\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "7" nil 1 0 "7" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 123 "\"8\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "8" nil 1 0 "8" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 124 "\"9\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "9" nil 1 0 "9" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 125 "\"10\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "10" nil 1 0 "10" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 126 "\"100\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "100" nil 1 0 "100" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 127 "\"abc\" =~ /^[0-9]+$/" "^[0-9]+$" nil nil nil nil "abc" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 128 "\"enter\" =~ /^.*nter/" "^.*nter" nil nil nil nil "enter" nil 1 0 "enter" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 129 "\"inter\" =~ /^.*nter/" "^.*nter" nil nil nil nil "inter" nil 1 0 "inter" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 130 "\"uponter\" =~ /^.*nter/" "^.*nter" nil nil nil nil "uponter" nil 1 0 "uponter" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 131 "\"xxx0\" =~ /^xxx[0-9]+$/" "^xxx[0-9]+$" nil nil nil nil "xxx0" nil 1 0 "xxx0" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 132 "\"xxx1234\" =~ /^xxx[0-9]+$/" "^xxx[0-9]+$" nil nil nil nil "xxx1234" nil 1 0 "xxx1234" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 133 "\"xxx\" =~ /^xxx[0-9]+$/" "^xxx[0-9]+$" nil nil nil nil "xxx" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 134 "\"x123\" =~ /^.+[0-9][0-9][0-9]$/" "^.+[0-9][0-9][0-9]$" nil nil nil nil "x123" nil 1 0 "x123" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 135 "\"xx123\" =~ /^.+[0-9][0-9][0-9]$/" "^.+[0-9][0-9][0-9]$" nil nil nil nil "xx123" nil 1 0 "xx123" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 136 "\"123456\" =~ /^.+[0-9][0-9][0-9]$/" "^.+[0-9][0-9][0-9]$" nil nil nil nil "123456" nil 1 0 "123456" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 137 "\"123\" =~ /^.+[0-9][0-9][0-9]$/" "^.+[0-9][0-9][0-9]$" nil nil nil nil "123" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 138 "\"x1234\" =~ /^.+[0-9][0-9][0-9]$/" "^.+[0-9][0-9][0-9]$" nil nil nil nil "x1234" nil 1 0 "x1234" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 139 "\"x123\" =~ /^.+?[0-9][0-9][0-9]$/" "^.+?[0-9][0-9][0-9]$" nil nil nil nil "x123" nil 1 0 "x123" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 140 "\"xx123\" =~ /^.+?[0-9][0-9][0-9]$/" "^.+?[0-9][0-9][0-9]$" nil nil nil nil "xx123" nil 1 0 "xx123" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 141 "\"123456\" =~ /^.+?[0-9][0-9][0-9]$/" "^.+?[0-9][0-9][0-9]$" nil nil nil nil "123456" nil 1 0 "123456" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 142 "\"123\" =~ /^.+?[0-9][0-9][0-9]$/" "^.+?[0-9][0-9][0-9]$" nil nil nil nil "123" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 143 "\"x1234\" =~ /^.+?[0-9][0-9][0-9]$/" "^.+?[0-9][0-9][0-9]$" nil nil nil nil "x1234" nil 1 0 "x1234" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "abc!pqr=apquxz.ixr.zzz.ac.uk" (list "abc" "pqr" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 149 "\"Well, we need a colon: somewhere\" =~ /:/" ":" nil nil nil nil "Well, we need a colon: somewhere" nil 1 0 ":" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 150 "\"Fail if we don't\" =~ /:/" ":" nil nil nil nil "Fail if we don't" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 151 "\"0abc\" =~ /([\\da-f:]+)$/i" "([\\da-f:]+)$" t nil nil nil "0abc" nil 1 0 "0abc" (list "0abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 152 "\"abc\" =~ /([\\da-f:]+)$/i" "([\\da-f:]+)$" t nil nil nil "abc" nil 1 0 "abc" (list "abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 153 "\"fed\" =~ /([\\da-f:]+)$/i" "([\\da-f:]+)$" t nil nil nil "fed" nil 1 0 "fed" (list "fed" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 154 "\"E\" =~ /([\\da-f:]+)$/i" "([\\da-f:]+)$" t nil nil nil "E" nil 1 0 "E" (list "E" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 155 "\"::\" =~ /([\\da-f:]+)$/i" "([\\da-f:]+)$" t nil nil nil "::" nil 1 0 "::" (list "::" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 156 "\"5f03:12C0::932e\" =~ /([\\da-f:]+)$/i" "([\\da-f:]+)$" t nil nil nil "5f03:12C0::932e" nil 1 0 "5f03:12C0::932e" (list "5f03:12C0::932e" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 157 "\"fed def\" =~ /([\\da-f:]+)$/i" "([\\da-f:]+)$" t nil nil nil "fed def" nil 1 0 "def" (list "def" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 158 "\"Any old stuff\" =~ /([\\da-f:]+)$/i" "([\\da-f:]+)$" t nil nil nil "Any old stuff" nil 1 0 "ff" (list "ff" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 159 "\"0zzz\" =~ /([\\da-f:]+)$/i" "([\\da-f:]+)$" t nil nil nil "0zzz" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 160 "\"gzzz\" =~ /([\\da-f:]+)$/i" "([\\da-f:]+)$" t nil nil nil "gzzz" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 161 "\"fed\\x20\" =~ /([\\da-f:]+)$/i" "([\\da-f:]+)$" t nil nil nil "fed " nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 162 "\"Any old rubbish\" =~ /([\\da-f:]+)$/i" "([\\da-f:]+)$" t nil nil nil "Any old rubbish" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 0 ".1.2.3" (list "1" "2" "3" nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "A.12.123.0" (list "12" "123" "0" nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 0 "1 IN SOA non-sp1 non-sp2(" (list "1" "non-sp1" "non-sp2" nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 0 "1 IN SOA non-sp1 non-sp2 (" (list "1" "non-sp1" "non-sp2" nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 "a." (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "Z." (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "2." (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "ab-c.pq-r." (list ".pq-r" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "sxk.zzz.ac.uk." (list ".uk" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "x-.y-." (list ".y-" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 "*.a" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "*.b0-a" (list "0-a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "*.c3-b.c" (list "3-b" ".c" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "*.c-a.b-c" (list "-a" ".b-c" "-c" nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 186 "\"abde\" =~ /^(?=ab(de))(abd)(e)/" "^(?=ab(de))(abd)(e)" nil nil nil nil "abde" nil 1 0 "abde" (list "de" "abd" "e" nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 187 "\"abdf\" =~ /^(?!(ab)de|x)(abd)(f)/" "^(?!(ab)de|x)(abd)(f)" nil nil nil nil "abdf" nil 1 0 "abdf" (list nil "abd" "f" nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 188 "\"abcd\" =~ /^(?=(ab(cd)))(ab)/" "^(?=(ab(cd)))(ab)" nil nil nil nil "abcd" nil 1 0 "ab" (list "abcd" "cd" "ab" nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 189 "\"a.b.c.d\" =~ /^[\\da-f](\\.[\\da-f])*$/i" "^[\\da-f](\\.[\\da-f])*$" t nil nil nil "a.b.c.d" nil 1 0 "a.b.c.d" (list ".d" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 190 "\"A.B.C.D\" =~ /^[\\da-f](\\.[\\da-f])*$/i" "^[\\da-f](\\.[\\da-f])*$" t nil nil nil "A.B.C.D" nil 1 0 "A.B.C.D" (list ".D" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "a.b.c.1.2.3.C" (list ".C" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 192 "\"\\\"1234\\\"\" =~ /^\\\".*\\\"\\s*(;.*)?$/" "^\\\".*\\\"\\s*(;.*)?$" nil nil nil nil "\"1234\"" nil 1 0 "\"1234\"" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 193 "\"\\\"abcd\\\" ;\" =~ /^\\\".*\\\"\\s*(;.*)?$/" "^\\\".*\\\"\\s*(;.*)?$" nil nil nil nil "\"abcd\" ;" nil 1 0 "\"abcd\" ;" (list ";" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 194 "\"\\\"\\\" ; rhubarb\" =~ /^\\\".*\\\"\\s*(;.*)?$/" "^\\\".*\\\"\\s*(;.*)?$" nil nil nil nil "\"\" ; rhubarb" nil 1 0 "\"\" ; rhubarb" (list "; rhubarb" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 195 "\"\\\"1234\\\" : things\" =~ /^\\\".*\\\"\\s*(;.*)?$/" "^\\\".*\\\"\\s*(;.*)?$" nil nil nil nil "\"1234\" : things" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 196 "\"\\\" =~ /^$/" "^$" nil nil nil nil "" nil 1 0 "" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "ab c" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 "ab c" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 203 "\"a bcd\" =~ /^ a\\ b[c ]d $/x" "^ a\\ b[c ]d $" nil nil nil t "a bcd" nil 1 0 "a bcd" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 204 "\"a b d\" =~ /^ a\\ b[c ]d $/x" "^ a\\ b[c ]d $" nil nil nil t "a b d" nil 1 0 "a b d" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 205 "\"abcd\" =~ /^ a\\ b[c ]d $/x" "^ a\\ b[c ]d $" nil nil nil t "abcd" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 206 "\"ab d\" =~ /^ a\\ b[c ]d $/x" "^ a\\ b[c ]d $" nil nil nil t "ab d" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 "abcdefhijklm" (list "abc" "bc" "c" "def" "ef" "f" "hij" "ij" "j" "klm" "lm" "m" nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "abcdefhijklm" (list "bc" "c" "ef" "f" "ij" "j" "lm" "m" nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 (cl-ppcre::string-list-to-simple-string (let (list) (push "a+ Z0+" list) (push (list (code-char 8)) list) (push (list (code-char 10)) list) (push (list (code-char 29)) list) (push (list (code-char 18)) list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "a+ Z0+" list) (push (list (code-char 8)) list) (push (list (code-char 10)) list) (push (list (code-char 29)) list) (push (list (code-char 18)) list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 210 "\".^\\$(*+)|{?,?}\" =~ /^[.^$|()*+?{,}]+/" "^[.^$|()*+?{,}]+" nil nil nil nil ".^$(*+)|{?,?}" nil 1 0 ".^$(*+)|{?,?}" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 211 "\"z\" =~ /^a*\\w/" "^a*\\w" nil nil nil nil "z" nil 1 0 "z" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 212 "\"az\" =~ /^a*\\w/" "^a*\\w" nil nil nil nil "az" nil 1 0 "az" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 213 "\"aaaz\" =~ /^a*\\w/" "^a*\\w" nil nil nil nil "aaaz" nil 1 0 "aaaz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 214 "\"a\" =~ /^a*\\w/" "^a*\\w" nil nil nil nil "a" nil 1 0 "a" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 215 "\"aa\" =~ /^a*\\w/" "^a*\\w" nil nil nil nil "aa" nil 1 0 "aa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 216 "\"aaaa\" =~ /^a*\\w/" "^a*\\w" nil nil nil nil "aaaa" nil 1 0 "aaaa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 217 "\"a+\" =~ /^a*\\w/" "^a*\\w" nil nil nil nil "a+" nil 1 0 "a" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 218 "\"aa+\" =~ /^a*\\w/" "^a*\\w" nil nil nil nil "aa+" nil 1 0 "aa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 219 "\"z\" =~ /^a*?\\w/" "^a*?\\w" nil nil nil nil "z" nil 1 0 "z" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 220 "\"az\" =~ /^a*?\\w/" "^a*?\\w" nil nil nil nil "az" nil 1 0 "a" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 221 "\"aaaz\" =~ /^a*?\\w/" "^a*?\\w" nil nil nil nil "aaaz" nil 1 0 "a" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 222 "\"a\" =~ /^a*?\\w/" "^a*?\\w" nil nil nil nil "a" nil 1 0 "a" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 223 "\"aa\" =~ /^a*?\\w/" "^a*?\\w" nil nil nil nil "aa" nil 1 0 "a" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 224 "\"aaaa\" =~ /^a*?\\w/" "^a*?\\w" nil nil nil nil "aaaa" nil 1 0 "a" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 225 "\"a+\" =~ /^a*?\\w/" "^a*?\\w" nil nil nil nil "a+" nil 1 0 "a" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 226 "\"aa+\" =~ /^a*?\\w/" "^a*?\\w" nil nil nil nil "aa+" nil 1 0 "a" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 227 "\"az\" =~ /^a+\\w/" "^a+\\w" nil nil nil nil "az" nil 1 0 "az" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 228 "\"aaaz\" =~ /^a+\\w/" "^a+\\w" nil nil nil nil "aaaz" nil 1 0 "aaaz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 229 "\"aa\" =~ /^a+\\w/" "^a+\\w" nil nil nil nil "aa" nil 1 0 "aa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 230 "\"aaaa\" =~ /^a+\\w/" "^a+\\w" nil nil nil nil "aaaa" nil 1 0 "aaaa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 231 "\"aa+\" =~ /^a+\\w/" "^a+\\w" nil nil nil nil "aa+" nil 1 0 "aa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 232 "\"az\" =~ /^a+?\\w/" "^a+?\\w" nil nil nil nil "az" nil 1 0 "az" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 233 "\"aaaz\" =~ /^a+?\\w/" "^a+?\\w" nil nil nil nil "aaaz" nil 1 0 "aa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 234 "\"aa\" =~ /^a+?\\w/" "^a+?\\w" nil nil nil nil "aa" nil 1 0 "aa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 235 "\"aaaa\" =~ /^a+?\\w/" "^a+?\\w" nil nil nil nil "aaaa" nil 1 0 "aa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 236 "\"aa+\" =~ /^a+?\\w/" "^a+?\\w" nil nil nil nil "aa+" nil 1 0 "aa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 237 "\"1234567890\" =~ /^\\d{8}\\w{2,}/" "^\\d{8}\\w{2,}" nil nil nil nil "1234567890" nil 1 0 "1234567890" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 238 "\"12345678ab\" =~ /^\\d{8}\\w{2,}/" "^\\d{8}\\w{2,}" nil nil nil nil "12345678ab" nil 1 0 "12345678ab" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 239 "\"12345678__\" =~ /^\\d{8}\\w{2,}/" "^\\d{8}\\w{2,}" nil nil nil nil "12345678__" nil 1 0 "12345678__" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 240 "\"1234567\" =~ /^\\d{8}\\w{2,}/" "^\\d{8}\\w{2,}" nil nil nil nil "1234567" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 241 "\"uoie\" =~ /^[aeiou\\d]{4,5}$/" "^[aeiou\\d]{4,5}$" nil nil nil nil "uoie" nil 1 0 "uoie" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 242 "\"1234\" =~ /^[aeiou\\d]{4,5}$/" "^[aeiou\\d]{4,5}$" nil nil nil nil "1234" nil 1 0 "1234" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 243 "\"12345\" =~ /^[aeiou\\d]{4,5}$/" "^[aeiou\\d]{4,5}$" nil nil nil nil "12345" nil 1 0 "12345" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 244 "\"aaaaa\" =~ /^[aeiou\\d]{4,5}$/" "^[aeiou\\d]{4,5}$" nil nil nil nil "aaaaa" nil 1 0 "aaaaa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 245 "\"123456\" =~ /^[aeiou\\d]{4,5}$/" "^[aeiou\\d]{4,5}$" nil nil nil nil "123456" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 246 "\"uoie\" =~ /^[aeiou\\d]{4,5}?/" "^[aeiou\\d]{4,5}?" nil nil nil nil "uoie" nil 1 0 "uoie" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 247 "\"1234\" =~ /^[aeiou\\d]{4,5}?/" "^[aeiou\\d]{4,5}?" nil nil nil nil "1234" nil 1 0 "1234" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 248 "\"12345\" =~ /^[aeiou\\d]{4,5}?/" "^[aeiou\\d]{4,5}?" nil nil nil nil "12345" nil 1 0 "1234" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 249 "\"aaaaa\" =~ /^[aeiou\\d]{4,5}?/" "^[aeiou\\d]{4,5}?" nil nil nil nil "aaaaa" nil 1 0 "aaaa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 250 "\"123456\" =~ /^[aeiou\\d]{4,5}?/" "^[aeiou\\d]{4,5}?" nil nil nil nil "123456" nil 1 0 "1234" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 251 "\"abc=abcabc\" =~ /\\A(abc|def)=(\\1){2,3}\\Z/" "\\A(abc|def)=(\\1){2,3}\\Z" nil nil nil nil "abc=abcabc" nil 1 0 "abc=abcabc" (list "abc" "abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 252 "\"def=defdefdef\" =~ /\\A(abc|def)=(\\1){2,3}\\Z/" "\\A(abc|def)=(\\1){2,3}\\Z" nil nil nil nil "def=defdefdef" nil 1 0 "def=defdefdef" (list "def" "def" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 253 "\"abc=defdef\" =~ /\\A(abc|def)=(\\1){2,3}\\Z/" "\\A(abc|def)=(\\1){2,3}\\Z" nil nil nil nil "abc=defdef" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 "abcdefghijkcda2" (list "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "cd" nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "abcdefghijkkkkcda2" (list "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "cd" nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "cataract cataract23" (list "cataract" "aract" "ract" "" "3" nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "catatonic catatonic23" (list "catatonic" "atonic" "tonic" "" "3" nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "caterpillar caterpillar23" (list "caterpillar" "erpillar" nil "" "3" nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 259 (cl-ppcre::string-list-to-simple-string (let (list) (push "\"From abcd Mon Sep 01 12:33:02 1997\" =~ " list) (push (list (code-char 10)) list) (push "/^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]/" list)(nreverse list))) "^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 1 0 "From abcd Mon Sep 01 12:33" (list "abcd" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "From abcd Mon Sep 01 12:33" (list "Sep " nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "From abcd Mon Sep 1 12:33" (list "Sep " nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 263 "\"12\\n34\" =~ /^12.34/s" "^12.34" nil nil t nil (cl-ppcre::string-list-to-simple-string (let (list) (push "12" list) (push (list (code-char 10)) list) (push "34" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "12" list) (push (list (code-char 10)) list) (push "34" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 264 "\"12\\r34\" =~ /^12.34/s" "^12.34" nil nil t nil (cl-ppcre::string-list-to-simple-string (let (list) (push "12" list) (push (list (code-char 13)) list) (push "34" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "12" list) (push (list (code-char 13)) list) (push "34" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 265 "\"the quick brown\\t fox\" =~ /\\w+(?=\\t)/" "\\w+(?=\\t)" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "the quick brown" list) (push (list (code-char 9)) list) (push " fox" list)(nreverse list))) nil 1 0 "brown" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 266 "\"foobar is foolish see?\" =~ /foo(?!bar)(.*)/" "foo(?!bar)(.*)" nil nil nil nil "foobar is foolish see?" nil 1 0 "foolish see?" (list "lish see?" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 267 "\"foobar crowbar etc\" =~ /(?:(?!foo)...|^.{0,2})bar(.*)/" "(?:(?!foo)...|^.{0,2})bar(.*)" nil nil nil nil "foobar crowbar etc" nil 1 0 "rowbar etc" (list " etc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 268 "\"barrel\" =~ /(?:(?!foo)...|^.{0,2})bar(.*)/" "(?:(?!foo)...|^.{0,2})bar(.*)" nil nil nil nil "barrel" nil 1 0 "barrel" (list "rel" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 269 "\"2barrel\" =~ /(?:(?!foo)...|^.{0,2})bar(.*)/" "(?:(?!foo)...|^.{0,2})bar(.*)" nil nil nil nil "2barrel" nil 1 0 "2barrel" (list "rel" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 270 "\"A barrel\" =~ /(?:(?!foo)...|^.{0,2})bar(.*)/" "(?:(?!foo)...|^.{0,2})bar(.*)" nil nil nil nil "A barrel" nil 1 0 "A barrel" (list "rel" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 271 "\"abc456\" =~ /^(\\D*)(?=\\d)(?!123)/" "^(\\D*)(?=\\d)(?!123)" nil nil nil nil "abc456" nil 1 0 "abc" (list "abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 272 "\"abc123\" =~ /^(\\D*)(?=\\d)(?!123)/" "^(\\D*)(?=\\d)(?!123)" nil nil nil nil "abc123" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 273 (cl-ppcre::string-list-to-simple-string (let (list) (push "\"1234\" =~ /^1234(?# test newlines" list) (push (list (code-char 10)) list) (push " inside)/" list)(nreverse list))) "^1234(?# test newlines inside)" nil nil nil nil "1234" nil 1 0 "1234" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 274 (cl-ppcre::string-list-to-simple-string (let (list) (push "\"1234\" =~ /^1234 #comment in extended re" list) (push (list (code-char 10)) list) (push " /x" list)(nreverse list))) "^1234 #comment in extended re " nil nil nil t "1234" nil 1 0 "1234" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 275 (cl-ppcre::string-list-to-simple-string (let (list) (push "\"abcd\" =~ /#rhubarb" list) (push (list (code-char 10)) list) (push " abcd/x" list)(nreverse list))) "#rhubarb abcd" nil nil nil t "abcd" nil 1 0 "abcd" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 276 "\"abcd\" =~ /^abcd#rhubarb/x" "^abcd#rhubarb" nil nil nil t "abcd" nil 1 0 "abcd" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 277 "\"aaab\" =~ /^(a)\\1{2,3}(.)/" "^(a)\\1{2,3}(.)" nil nil nil nil "aaab" nil 1 0 "aaab" (list "a" "b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 278 "\"aaaab\" =~ /^(a)\\1{2,3}(.)/" "^(a)\\1{2,3}(.)" nil nil nil nil "aaaab" nil 1 0 "aaaab" (list "a" "b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 279 "\"aaaaab\" =~ /^(a)\\1{2,3}(.)/" "^(a)\\1{2,3}(.)" nil nil nil nil "aaaaab" nil 1 0 "aaaaa" (list "a" "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 280 "\"aaaaaab\" =~ /^(a)\\1{2,3}(.)/" "^(a)\\1{2,3}(.)" nil nil nil nil "aaaaaab" nil 1 0 "aaaaa" (list "a" "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 281 "\"the abc\" =~ /(?!^)abc/" "(?!^)abc" nil nil nil nil "the abc" nil 1 0 "abc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 282 "\"abc\" =~ /(?!^)abc/" "(?!^)abc" nil nil nil nil "abc" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 283 "\"abc\" =~ /(?=^)abc/" "(?=^)abc" nil nil nil nil "abc" nil 1 0 "abc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 284 "\"the abc\" =~ /(?=^)abc/" "(?=^)abc" nil nil nil nil "the abc" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 285 "\"aabbbbb\" =~ /^[ab]{1,3}(ab*|b)/" "^[ab]{1,3}(ab*|b)" nil nil nil nil "aabbbbb" nil 1 0 "aabb" (list "b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 286 "\"aabbbbb\" =~ /^[ab]{1,3}?(ab*|b)/" "^[ab]{1,3}?(ab*|b)" nil nil nil nil "aabbbbb" nil 1 0 "aabbbbb" (list "abbbbb" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 287 "\"aabbbbb\" =~ /^[ab]{1,3}?(ab*?|b)/" "^[ab]{1,3}?(ab*?|b)" nil nil nil nil "aabbbbb" nil 1 0 "aa" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 288 "\"aabbbbb\" =~ /^[ab]{1,3}(ab*?|b)/" "^[ab]{1,3}(ab*?|b)" nil nil nil nil "aabbbbb" nil 1 0 "aabb" (list "b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 289 (cl-ppcre::string-list-to-simple-string (let (list) (push "\"Alan Other \" =~ / (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* # optional leading comment" list) (push (list (code-char 10)) list) (push "(?: (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") # initial word" list) (push (list (code-char 10)) list) (push "(?: (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") )* # further okay, if led by a period" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") # one word, optionally followed by...." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or..." list) (push (list (code-char 10)) list) (push "\\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) | # comments, or..." list) (push (list (code-char 10)) list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push "# quoted strings" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "< (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* # leading <" list) (push (list (code-char 10)) list) (push "(?: @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push (list (code-char 10)) list) (push "(?: (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* , (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push ")* # further okay, if led by comma" list) (push (list (code-char 10)) list) (push ": # closing colon" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* )? # optional route" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") # initial word" list) (push (list (code-char 10)) list) (push "(?: (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") )* # further okay, if led by a period" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address spec" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* > # trailing >" list) (push (list (code-char 10)) list) (push "# name and address" list) (push (list (code-char 10)) list) (push ") (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* # optional trailing comment" list) (push (list (code-char 10)) list) (push "/x" list)(nreverse list))) " (?: [\\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 " nil 1 0 "Alan Other " (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 290 (cl-ppcre::string-list-to-simple-string (let (list) (push "\"\" =~ / (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* # optional leading comment" list) (push (list (code-char 10)) list) (push "(?: (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") # initial word" list) (push (list (code-char 10)) list) (push "(?: (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") )* # further okay, if led by a period" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") # one word, optionally followed by...." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or..." list) (push (list (code-char 10)) list) (push "\\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) | # comments, or..." list) (push (list (code-char 10)) list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push "# quoted strings" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "< (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* # leading <" list) (push (list (code-char 10)) list) (push "(?: @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push (list (code-char 10)) list) (push "(?: (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* , (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push ")* # further okay, if led by comma" list) (push (list (code-char 10)) list) (push ": # closing colon" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* )? # optional route" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") # initial word" list) (push (list (code-char 10)) list) (push "(?: (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") )* # further okay, if led by a period" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address spec" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* > # trailing >" list) (push (list (code-char 10)) list) (push "# name and address" list) (push (list (code-char 10)) list) (push ") (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* # optional trailing comment" list) (push (list (code-char 10)) list) (push "/x" list)(nreverse list))) " (?: [\\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 "" nil 1 0 "user@dom.ain" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 291 (cl-ppcre::string-list-to-simple-string (let (list) (push "\"user\\@dom.ain\" =~ / (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* # optional leading comment" list) (push (list (code-char 10)) list) (push "(?: (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") # initial word" list) (push (list (code-char 10)) list) (push "(?: (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") )* # further okay, if led by a period" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") # one word, optionally followed by...." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or..." list) (push (list (code-char 10)) list) (push "\\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) | # comments, or..." list) (push (list (code-char 10)) list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push "# quoted strings" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "< (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* # leading <" list) (push (list (code-char 10)) list) (push "(?: @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push (list (code-char 10)) list) (push "(?: (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* , (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push ")* # further okay, if led by comma" list) (push (list (code-char 10)) list) (push ": # closing colon" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* )? # optional route" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") # initial word" list) (push (list (code-char 10)) list) (push "(?: (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") )* # further okay, if led by a period" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address spec" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* > # trailing >" list) (push (list (code-char 10)) list) (push "# name and address" list) (push (list (code-char 10)) list) (push ") (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* # optional trailing comment" list) (push (list (code-char 10)) list) (push "/x" list)(nreverse list))) " (?: [\\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 1 0 "user@dom.ain" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 292 (cl-ppcre::string-list-to-simple-string (let (list) (push "\"\\\"A. Other\\\" (a comment)\" =~ / (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* # optional leading comment" list) (push (list (code-char 10)) list) (push "(?: (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") # initial word" list) (push (list (code-char 10)) list) (push "(?: (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") )* # further okay, if led by a period" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") # one word, optionally followed by...." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or..." list) (push (list (code-char 10)) list) (push "\\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) | # comments, or..." list) (push (list (code-char 10)) list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push "# quoted strings" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "< (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* # leading <" list) (push (list (code-char 10)) list) (push "(?: @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push (list (code-char 10)) list) (push "(?: (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* , (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push ")* # further okay, if led by comma" list) (push (list (code-char 10)) list) (push ": # closing colon" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* )? # optional route" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") # initial word" list) (push (list (code-char 10)) list) (push "(?: (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") )* # further okay, if led by a period" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address spec" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* > # trailing >" list) (push (list (code-char 10)) list) (push "# name and address" list) (push (list (code-char 10)) list) (push ") (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* # optional trailing comment" list) (push (list (code-char 10)) list) (push "/x" list)(nreverse list))) " (?: [\\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\" (a comment)" nil 1 0 "\"A. Other\" (a comment)" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 293 (cl-ppcre::string-list-to-simple-string (let (list) (push "\"A. Other (a comment)\" =~ / (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* # optional leading comment" list) (push (list (code-char 10)) list) (push "(?: (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") # initial word" list) (push (list (code-char 10)) list) (push "(?: (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") )* # further okay, if led by a period" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") # one word, optionally followed by...." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or..." list) (push (list (code-char 10)) list) (push "\\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) | # comments, or..." list) (push (list (code-char 10)) list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push "# quoted strings" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "< (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* # leading <" list) (push (list (code-char 10)) list) (push "(?: @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push (list (code-char 10)) list) (push "(?: (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* , (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push ")* # further okay, if led by comma" list) (push (list (code-char 10)) list) (push ": # closing colon" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* )? # optional route" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") # initial word" list) (push (list (code-char 10)) list) (push "(?: (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") )* # further okay, if led by a period" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address spec" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* > # trailing >" list) (push (list (code-char 10)) list) (push "# name and address" list) (push (list (code-char 10)) list) (push ") (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* # optional trailing comment" list) (push (list (code-char 10)) list) (push "/x" list)(nreverse list))) " (?: [\\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 (a comment)" nil 1 0 " Other (a comment)" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 294 (cl-ppcre::string-list-to-simple-string (let (list) (push "\"\\\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\\\"\\@x400-re.lay\" =~ / (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* # optional leading comment" list) (push (list (code-char 10)) list) (push "(?: (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") # initial word" list) (push (list (code-char 10)) list) (push "(?: (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") )* # further okay, if led by a period" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") # one word, optionally followed by...." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or..." list) (push (list (code-char 10)) list) (push "\\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) | # comments, or..." list) (push (list (code-char 10)) list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push "# quoted strings" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "< (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* # leading <" list) (push (list (code-char 10)) list) (push "(?: @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push (list (code-char 10)) list) (push "(?: (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* , (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push ")* # further okay, if led by comma" list) (push (list (code-char 10)) list) (push ": # closing colon" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* )? # optional route" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") # initial word" list) (push (list (code-char 10)) list) (push "(?: (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") )* # further okay, if led by a period" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address spec" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* > # trailing >" list) (push (list (code-char 10)) list) (push "# name and address" list) (push (list (code-char 10)) list) (push ") (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* # optional trailing comment" list) (push (list (code-char 10)) list) (push "/x" list)(nreverse list))) " (?: [\\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 1 0 "\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"@x400-re.lay" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 295 (cl-ppcre::string-list-to-simple-string (let (list) (push "\"A missing angle @,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") # initial word" list) (push (list (code-char 10)) list) (push "(?: (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") )* # further okay, if led by a period" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") # one word, optionally followed by...." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or..." list) (push (list (code-char 10)) list) (push "\\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) | # comments, or..." list) (push (list (code-char 10)) list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push "# quoted strings" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "< (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* # leading <" list) (push (list (code-char 10)) list) (push "(?: @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push (list (code-char 10)) list) (push "(?: (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* , (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push ")* # further okay, if led by comma" list) (push (list (code-char 10)) list) (push ": # closing colon" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* )? # optional route" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") # initial word" list) (push (list (code-char 10)) list) (push "(?: (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") )* # further okay, if led by a period" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address spec" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* > # trailing >" list) (push (list (code-char 10)) list) (push "# name and address" list) (push (list (code-char 10)) list) (push ") (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* # optional trailing comment" list) (push (list (code-char 10)) list) (push "/x" list)(nreverse list))) " (?: [\\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 @,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") # initial word" list) (push (list (code-char 10)) list) (push "(?: (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") )* # further okay, if led by a period" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") # one word, optionally followed by...." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or..." list) (push (list (code-char 10)) list) (push "\\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) | # comments, or..." list) (push (list (code-char 10)) list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push "# quoted strings" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "< (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* # leading <" list) (push (list (code-char 10)) list) (push "(?: @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push (list (code-char 10)) list) (push "(?: (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* , (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push ")* # further okay, if led by comma" list) (push (list (code-char 10)) list) (push ": # closing colon" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* )? # optional route" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") # initial word" list) (push (list (code-char 10)) list) (push "(?: (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" (?: # opening quote..." list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\\\\ [^\\x80-\\xff] # Escaped something (something != CR)" list) (push (list (code-char 10)) list) (push ")* \" # closing quote" list) (push (list (code-char 10)) list) (push ") )* # further okay, if led by a period" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* @ (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # initial subdomain" list) (push (list (code-char 10)) list) (push "(?: #" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* \\. # if led by a period..." list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* (?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "| \\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ") # ...further okay" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address spec" list) (push (list (code-char 10)) list) (push "(?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* > # trailing >" list) (push (list (code-char 10)) list) (push "# name and address" list) (push (list (code-char 10)) list) (push ") (?: [\\040\\t] | \\(" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )*" list) (push (list (code-char 10)) list) (push "\\) )* # optional trailing comment" list) (push (list (code-char 10)) list) (push "/x" list)(nreverse list))) " (?: [\\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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 297 (cl-ppcre::string-list-to-simple-string (let (list) (push "\"Alan Other \" =~ /[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional leading comment" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# additional words" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "# leading word" list) (push (list (code-char 10)) list) (push "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push ") # \"special\" comment or quoted string" list) (push (list (code-char 10)) list) (push "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\"" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "<" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# <" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "(?: ," list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push ")* # additional domains" list) (push (list (code-char 10)) list) (push ":" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")? # optional route" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# additional words" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address spec" list) (push (list (code-char 10)) list) (push "> # >" list) (push (list (code-char 10)) list) (push "# name and address" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "/x" list)(nreverse list))) "[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\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 " nil 1 0 "Alan Other " (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 298 (cl-ppcre::string-list-to-simple-string (let (list) (push "\"\" =~ /[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional leading comment" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# additional words" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "# leading word" list) (push (list (code-char 10)) list) (push "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push ") # \"special\" comment or quoted string" list) (push (list (code-char 10)) list) (push "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\"" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "<" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# <" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "(?: ," list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push ")* # additional domains" list) (push (list (code-char 10)) list) (push ":" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")? # optional route" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# additional words" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address spec" list) (push (list (code-char 10)) list) (push "> # >" list) (push (list (code-char 10)) list) (push "# name and address" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "/x" list)(nreverse list))) "[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\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 "" nil 1 0 "user@dom.ain" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 299 (cl-ppcre::string-list-to-simple-string (let (list) (push "\"user\\@dom.ain\" =~ /[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional leading comment" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# additional words" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "# leading word" list) (push (list (code-char 10)) list) (push "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push ") # \"special\" comment or quoted string" list) (push (list (code-char 10)) list) (push "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\"" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "<" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# <" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "(?: ," list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push ")* # additional domains" list) (push (list (code-char 10)) list) (push ":" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")? # optional route" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# additional words" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address spec" list) (push (list (code-char 10)) list) (push "> # >" list) (push (list (code-char 10)) list) (push "# name and address" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "/x" list)(nreverse list))) "[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\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 1 0 "user@dom.ain" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 300 (cl-ppcre::string-list-to-simple-string (let (list) (push "\"\\\"A. Other\\\" (a comment)\" =~ /[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional leading comment" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# additional words" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "# leading word" list) (push (list (code-char 10)) list) (push "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push ") # \"special\" comment or quoted string" list) (push (list (code-char 10)) list) (push "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\"" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "<" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# <" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "(?: ," list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push ")* # additional domains" list) (push (list (code-char 10)) list) (push ":" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")? # optional route" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# additional words" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address spec" list) (push (list (code-char 10)) list) (push "> # >" list) (push (list (code-char 10)) list) (push "# name and address" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "/x" list)(nreverse list))) "[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\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\" (a comment)" nil 1 0 "\"A. Other\" " (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 301 (cl-ppcre::string-list-to-simple-string (let (list) (push "\"A. Other (a comment)\" =~ /[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional leading comment" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# additional words" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "# leading word" list) (push (list (code-char 10)) list) (push "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push ") # \"special\" comment or quoted string" list) (push (list (code-char 10)) list) (push "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\"" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "<" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# <" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "(?: ," list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push ")* # additional domains" list) (push (list (code-char 10)) list) (push ":" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")? # optional route" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# additional words" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address spec" list) (push (list (code-char 10)) list) (push "> # >" list) (push (list (code-char 10)) list) (push "# name and address" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "/x" list)(nreverse list))) "[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\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 (a comment)" nil 1 0 " Other " (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 302 (cl-ppcre::string-list-to-simple-string (let (list) (push "\"\\\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\\\"\\@x400-re.lay\" =~ /[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional leading comment" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# additional words" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "# leading word" list) (push (list (code-char 10)) list) (push "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push ") # \"special\" comment or quoted string" list) (push (list (code-char 10)) list) (push "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\"" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "<" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# <" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "(?: ," list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push ")* # additional domains" list) (push (list (code-char 10)) list) (push ":" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")? # optional route" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# additional words" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address spec" list) (push (list (code-char 10)) list) (push "> # >" list) (push (list (code-char 10)) list) (push "# name and address" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "/x" list)(nreverse list))) "[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\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 1 0 "\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"@x400-re.lay" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 303 (cl-ppcre::string-list-to-simple-string (let (list) (push "\"A missing angle @,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# additional words" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "# leading word" list) (push (list (code-char 10)) list) (push "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push ") # \"special\" comment or quoted string" list) (push (list (code-char 10)) list) (push "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\"" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "<" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# <" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "(?: ," list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push ")* # additional domains" list) (push (list (code-char 10)) list) (push ":" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")? # optional route" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# additional words" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address spec" list) (push (list (code-char 10)) list) (push "> # >" list) (push (list (code-char 10)) list) (push "# name and address" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "/x" list)(nreverse list))) "[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\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 @,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# additional words" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "# leading word" list) (push (list (code-char 10)) list) (push "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push ") # \"special\" comment or quoted string" list) (push (list (code-char 10)) list) (push "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\"" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "<" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# <" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "(?: ," list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push ")* # additional domains" list) (push (list (code-char 10)) list) (push ":" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")? # optional route" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "# Atom" list) (push (list (code-char 10)) list) (push "| # or" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015\"] * # normal" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )*" list) (push (list (code-char 10)) list) (push "\" # \"" list) (push (list (code-char 10)) list) (push "# Quoted string" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# additional words" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "@" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\." list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters..." list) (push (list (code-char 10)) list) (push "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom" list) (push (list (code-char 10)) list) (push "|" list) (push (list (code-char 10)) list) (push "\\[ # [" list) (push (list (code-char 10)) list) (push "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff" list) (push (list (code-char 10)) list) (push "\\] # ]" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "[\\040\\t]* # Nab whitespace." list) (push (list (code-char 10)) list) (push "(?:" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: # (" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] |" list) (push (list (code-char 10)) list) (push "\\( # (" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push "(?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push ") # special" list) (push (list (code-char 10)) list) (push "[^\\\\\\x80-\\xff\\n\\015()] * # normal*" list) (push (list (code-char 10)) list) (push ")* # )*" list) (push (list (code-char 10)) list) (push "\\) # )" list) (push (list (code-char 10)) list) (push "[\\040\\t]* )* # If comment found, allow more spaces." list) (push (list (code-char 10)) list) (push "# optional trailing comments" list) (push (list (code-char 10)) list) (push ")*" list) (push (list (code-char 10)) list) (push "# address spec" list) (push (list (code-char 10)) list) (push "> # >" list) (push (list (code-char 10)) list) (push "# name and address" list) (push (list (code-char 10)) list) (push ")" list) (push (list (code-char 10)) list) (push "/x" list)(nreverse list))) "[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 305 "\"abc\\0def\\00pqr\\000xyz\\0000AB\" =~ /abc\\0def\\00pqr\\000xyz\\0000AB/" "abc\\0def\\00pqr\\000xyz\\0000AB" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 0)) list) (push "def" list) (push (list (code-char 0)) list) (push "pqr" list) (push (list (code-char 0)) list) (push "xyz" list) (push (list (code-char 0)) list) (push "0AB" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 0)) list) (push "def" list) (push (list (code-char 0)) list) (push "pqr" list) (push (list (code-char 0)) list) (push "xyz" list) (push (list (code-char 0)) list) (push "0AB" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 306 "\"abc456 abc\\0def\\00pqr\\000xyz\\0000ABCDE\" =~ /abc\\0def\\00pqr\\000xyz\\0000AB/" "abc\\0def\\00pqr\\000xyz\\0000AB" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc456 abc" list) (push (list (code-char 0)) list) (push "def" list) (push (list (code-char 0)) list) (push "pqr" list) (push (list (code-char 0)) list) (push "xyz" list) (push (list (code-char 0)) list) (push "0ABCDE" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 0)) list) (push "def" list) (push (list (code-char 0)) list) (push "pqr" list) (push (list (code-char 0)) list) (push "xyz" list) (push (list (code-char 0)) list) (push "0AB" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 307 "\"abc\\x0def\\x00pqr\\x000xyz\\x0000AB\" =~ /abc\\x0def\\x00pqr\\x000xyz\\x0000AB/" "abc\\x0def\\x00pqr\\x000xyz\\x0000AB" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 13)) list) (push "ef" list) (push (list (code-char 0)) list) (push "pqr" list) (push (list (code-char 0)) list) (push "0xyz" list) (push (list (code-char 0)) list) (push "00AB" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 13)) list) (push "ef" list) (push (list (code-char 0)) list) (push "pqr" list) (push (list (code-char 0)) list) (push "0xyz" list) (push (list (code-char 0)) list) (push "00AB" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 308 "\"abc456 abc\\x0def\\x00pqr\\x000xyz\\x0000ABCDE\" =~ /abc\\x0def\\x00pqr\\x000xyz\\x0000AB/" "abc\\x0def\\x00pqr\\x000xyz\\x0000AB" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc456 abc" list) (push (list (code-char 13)) list) (push "ef" list) (push (list (code-char 0)) list) (push "pqr" list) (push (list (code-char 0)) list) (push "0xyz" list) (push (list (code-char 0)) list) (push "00ABCDE" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 13)) list) (push "ef" list) (push (list (code-char 0)) list) (push "pqr" list) (push (list (code-char 0)) list) (push "0xyz" list) (push (list (code-char 0)) list) (push "00AB" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 309 "\"\\0A\" =~ /^[\\000-\\037]/" "^[\\000-\\037]" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list) (push "A" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 310 "\"\\01B\" =~ /^[\\000-\\037]/" "^[\\000-\\037]" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 1)) list) (push "B" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 1)) list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 311 "\"\\037C\" =~ /^[\\000-\\037]/" "^[\\000-\\037]" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 31)) list) (push "C" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 31)) list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 312 "\"\\0\\0\\0\\0\" =~ /\\0*/" "\\0*" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list) (push (list (code-char 0)) list) (push (list (code-char 0)) list) (push (list (code-char 0)) list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list) (push (list (code-char 0)) list) (push (list (code-char 0)) list) (push (list (code-char 0)) list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 313 "\"The A\\x0\\x0Z\" =~ /A\\x0{2,3}Z/" "A\\x0{2,3}Z" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "The A" list) (push (list (code-char 0)) list) (push (list (code-char 0)) list) (push "Z" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "A" list) (push (list (code-char 0)) list) (push (list (code-char 0)) list) (push "Z" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 314 "\"An A\\0\\x0\\0Z\" =~ /A\\x0{2,3}Z/" "A\\x0{2,3}Z" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "An A" list) (push (list (code-char 0)) list) (push (list (code-char 0)) list) (push (list (code-char 0)) list) (push "Z" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "A" list) (push (list (code-char 0)) list) (push (list (code-char 0)) list) (push (list (code-char 0)) list) (push "Z" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 315 "\"A\\0Z\" =~ /A\\x0{2,3}Z/" "A\\x0{2,3}Z" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "A" list) (push (list (code-char 0)) list) (push "Z" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 316 "\"A\\0\\x0\\0\\x0Z\" =~ /A\\x0{2,3}Z/" "A\\x0{2,3}Z" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "A" list) (push (list (code-char 0)) list) (push (list (code-char 0)) list) (push (list (code-char 0)) list) (push (list (code-char 0)) list) (push "Z" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 317 "\"cowcowbell\" =~ /^(cow|)\\1(bell)/" "^(cow|)\\1(bell)" nil nil nil nil "cowcowbell" nil 1 0 "cowcowbell" (list "cow" "bell" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 318 "\"bell\" =~ /^(cow|)\\1(bell)/" "^(cow|)\\1(bell)" nil nil nil nil "bell" nil 1 0 "bell" (list "" "bell" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 319 "\"cowbell\" =~ /^(cow|)\\1(bell)/" "^(cow|)\\1(bell)" nil nil nil nil "cowbell" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 320 "\"\\040abc\" =~ /^\\s/" "^\\s" nil nil nil nil " abc" nil 1 0 " " (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 321 "\"\\x0cabc\" =~ /^\\s/" "^\\s" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 12)) list) (push "abc" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 12)) list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 322 "\"\\nabc\" =~ /^\\s/" "^\\s" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 10)) list) (push "abc" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 10)) list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 323 "\"\\rabc\" =~ /^\\s/" "^\\s" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 13)) list) (push "abc" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 13)) list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 324 "\"\\tabc\" =~ /^\\s/" "^\\s" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 9)) list) (push "abc" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 9)) list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 325 "\"abc\" =~ /^\\s/" "^\\s" nil nil nil nil "abc" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 326 (cl-ppcre::string-list-to-simple-string (let (list) (push "\"abc\" =~ /^a" list) (push (list (code-char 9)) list) (push "b" list) (push (list (code-char 10)) list) (push " " list) (push (list (code-char 13)) list) (push " " list) (push (list (code-char 12)) list) (push " c/x" list)(nreverse list))) "^a b c" nil nil nil t "abc" nil 1 0 "abc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 327 "\"ab\" =~ /^(a|)\\1*b/" "^(a|)\\1*b" nil nil nil nil "ab" nil 1 0 "ab" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 328 "\"aaaab\" =~ /^(a|)\\1*b/" "^(a|)\\1*b" nil nil nil nil "aaaab" nil 1 0 "aaaab" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 329 "\"b\" =~ /^(a|)\\1*b/" "^(a|)\\1*b" nil nil nil nil "b" nil 1 0 "b" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 330 "\"acb\" =~ /^(a|)\\1*b/" "^(a|)\\1*b" nil nil nil nil "acb" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 331 "\"aab\" =~ /^(a|)\\1+b/" "^(a|)\\1+b" nil nil nil nil "aab" nil 1 0 "aab" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 332 "\"aaaab\" =~ /^(a|)\\1+b/" "^(a|)\\1+b" nil nil nil nil "aaaab" nil 1 0 "aaaab" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 333 "\"b\" =~ /^(a|)\\1+b/" "^(a|)\\1+b" nil nil nil nil "b" nil 1 0 "b" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 334 "\"ab\" =~ /^(a|)\\1+b/" "^(a|)\\1+b" nil nil nil nil "ab" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 335 "\"ab\" =~ /^(a|)\\1?b/" "^(a|)\\1?b" nil nil nil nil "ab" nil 1 0 "ab" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 336 "\"aab\" =~ /^(a|)\\1?b/" "^(a|)\\1?b" nil nil nil nil "aab" nil 1 0 "aab" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 337 "\"b\" =~ /^(a|)\\1?b/" "^(a|)\\1?b" nil nil nil nil "b" nil 1 0 "b" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 338 "\"acb\" =~ /^(a|)\\1?b/" "^(a|)\\1?b" nil nil nil nil "acb" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 339 "\"aaab\" =~ /^(a|)\\1{2}b/" "^(a|)\\1{2}b" nil nil nil nil "aaab" nil 1 0 "aaab" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 340 "\"b\" =~ /^(a|)\\1{2}b/" "^(a|)\\1{2}b" nil nil nil nil "b" nil 1 0 "b" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 341 "\"ab\" =~ /^(a|)\\1{2}b/" "^(a|)\\1{2}b" nil nil nil nil "ab" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 342 "\"aab\" =~ /^(a|)\\1{2}b/" "^(a|)\\1{2}b" nil nil nil nil "aab" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 343 "\"aaaab\" =~ /^(a|)\\1{2}b/" "^(a|)\\1{2}b" nil nil nil nil "aaaab" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 344 "\"aaab\" =~ /^(a|)\\1{2,3}b/" "^(a|)\\1{2,3}b" nil nil nil nil "aaab" nil 1 0 "aaab" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 345 "\"aaaab\" =~ /^(a|)\\1{2,3}b/" "^(a|)\\1{2,3}b" nil nil nil nil "aaaab" nil 1 0 "aaaab" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 346 "\"b\" =~ /^(a|)\\1{2,3}b/" "^(a|)\\1{2,3}b" nil nil nil nil "b" nil 1 0 "b" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 347 "\"ab\" =~ /^(a|)\\1{2,3}b/" "^(a|)\\1{2,3}b" nil nil nil nil "ab" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 348 "\"aab\" =~ /^(a|)\\1{2,3}b/" "^(a|)\\1{2,3}b" nil nil nil nil "aab" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 349 "\"aaaaab\" =~ /^(a|)\\1{2,3}b/" "^(a|)\\1{2,3}b" nil nil nil nil "aaaaab" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 350 "\"abbbbc\" =~ /ab{1,3}bc/" "ab{1,3}bc" nil nil nil nil "abbbbc" nil 1 0 "abbbbc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 351 "\"abbbc\" =~ /ab{1,3}bc/" "ab{1,3}bc" nil nil nil nil "abbbc" nil 1 0 "abbbc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 352 "\"abbc\" =~ /ab{1,3}bc/" "ab{1,3}bc" nil nil nil nil "abbc" nil 1 0 "abbc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 353 "\"abc\" =~ /ab{1,3}bc/" "ab{1,3}bc" nil nil nil nil "abc" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 354 "\"abbbbbc\" =~ /ab{1,3}bc/" "ab{1,3}bc" nil nil nil nil "abbbbbc" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 355 "\"track1.title:TBlah blah blah\" =~ /([^.]*)\\.([^:]*):[T ]+(.*)/" "([^.]*)\\.([^:]*):[T ]+(.*)" nil nil nil nil "track1.title:TBlah blah blah" nil 1 0 "track1.title:TBlah blah blah" (list "track1" "title" "Blah blah blah" nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 356 "\"track1.title:TBlah blah blah\" =~ /([^.]*)\\.([^:]*):[T ]+(.*)/i" "([^.]*)\\.([^:]*):[T ]+(.*)" t nil nil nil "track1.title:TBlah blah blah" nil 1 0 "track1.title:TBlah blah blah" (list "track1" "title" "Blah blah blah" nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 357 "\"track1.title:TBlah blah blah\" =~ /([^.]*)\\.([^:]*):[t ]+(.*)/i" "([^.]*)\\.([^:]*):[t ]+(.*)" t nil nil nil "track1.title:TBlah blah blah" nil 1 0 "track1.title:TBlah blah blah" (list "track1" "title" "Blah blah blah" nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 358 "\"WXY_^abc\" =~ /^[W-c]+$/" "^[W-c]+$" nil nil nil nil "WXY_^abc" nil 1 0 "WXY_^abc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 359 "\"wxy\" =~ /^[W-c]+$/" "^[W-c]+$" nil nil nil nil "wxy" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 360 "\"WXY_^abc\" =~ /^[W-c]+$/i" "^[W-c]+$" t nil nil nil "WXY_^abc" nil 1 0 "WXY_^abc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 361 "\"wxy_^ABC\" =~ /^[W-c]+$/i" "^[W-c]+$" t nil nil nil "wxy_^ABC" nil 1 0 "wxy_^ABC" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 362 "\"WXY_^abc\" =~ /^[\\x3f-\\x5F]+$/i" "^[\\x3f-\\x5F]+$" t nil nil nil "WXY_^abc" nil 1 0 "WXY_^abc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 363 "\"wxy_^ABC\" =~ /^[\\x3f-\\x5F]+$/i" "^[\\x3f-\\x5F]+$" t nil nil nil "wxy_^ABC" nil 1 0 "wxy_^ABC" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 364 "\"abc\" =~ /^abc$/m" "^abc$" nil t nil nil "abc" nil 1 0 "abc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 365 "\"qqq\\nabc\" =~ /^abc$/m" "^abc$" nil t nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "qqq" list) (push (list (code-char 10)) list) (push "abc" list)(nreverse list))) nil 1 0 "abc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 366 "\"abc\\nzzz\" =~ /^abc$/m" "^abc$" nil t nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 10)) list) (push "zzz" list)(nreverse list))) nil 1 0 "abc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 367 "\"qqq\\nabc\\nzzz\" =~ /^abc$/m" "^abc$" nil t nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "qqq" list) (push (list (code-char 10)) list) (push "abc" list) (push (list (code-char 10)) list) (push "zzz" list)(nreverse list))) nil 1 0 "abc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 368 "\"abc\" =~ /^abc$/" "^abc$" nil nil nil nil "abc" nil 1 0 "abc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 369 "\"qqq\\nabc\" =~ /^abc$/" "^abc$" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "qqq" list) (push (list (code-char 10)) list) (push "abc" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 370 "\"abc\\nzzz\" =~ /^abc$/" "^abc$" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 10)) list) (push "zzz" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 371 "\"qqq\\nabc\\nzzz\" =~ /^abc$/" "^abc$" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "qqq" list) (push (list (code-char 10)) list) (push "abc" list) (push (list (code-char 10)) list) (push "zzz" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 372 "\"abc\" =~ /\\Aabc\\Z/m" "\\Aabc\\Z" nil t nil nil "abc" nil 1 0 "abc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 373 "\"abc\\n\" =~ /\\Aabc\\Z/m" "\\Aabc\\Z" nil t nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 10)) list)(nreverse list))) nil 1 0 "abc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 374 "\"qqq\\nabc\" =~ /\\Aabc\\Z/m" "\\Aabc\\Z" nil t nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "qqq" list) (push (list (code-char 10)) list) (push "abc" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 375 "\"abc\\nzzz\" =~ /\\Aabc\\Z/m" "\\Aabc\\Z" nil t nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 10)) list) (push "zzz" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 376 "\"qqq\\nabc\\nzzz\" =~ /\\Aabc\\Z/m" "\\Aabc\\Z" nil t nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "qqq" list) (push (list (code-char 10)) list) (push "abc" list) (push (list (code-char 10)) list) (push "zzz" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 377 "\"abc\\ndef\" =~ /\\A(.)*\\Z/s" "\\A(.)*\\Z" nil nil t nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 10)) list) (push "def" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 10)) list) (push "def" list)(nreverse list))) (list "f" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 378 "\"abc\\ndef\" =~ /\\A(.)*\\Z/m" "\\A(.)*\\Z" nil t nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 10)) list) (push "def" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 379 "\"b::c\" =~ /(?:b)|(?::+)/" "(?:b)|(?::+)" nil nil nil nil "b::c" nil 1 0 "b" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 380 "\"c::b\" =~ /(?:b)|(?::+)/" "(?:b)|(?::+)" nil nil nil nil "c::b" nil 1 0 "::" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 381 "\"az-\" =~ /[-az]+/" "[-az]+" nil nil nil nil "az-" nil 1 0 "az-" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 382 "\"b\" =~ /[-az]+/" "[-az]+" nil nil nil nil "b" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 383 "\"za-\" =~ /[az-]+/" "[az-]+" nil nil nil nil "za-" nil 1 0 "za-" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 384 "\"b\" =~ /[az-]+/" "[az-]+" nil nil nil nil "b" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 385 "\"a-z\" =~ /[a\\-z]+/" "[a\\-z]+" nil nil nil nil "a-z" nil 1 0 "a-z" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 386 "\"b\" =~ /[a\\-z]+/" "[a\\-z]+" nil nil nil nil "b" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 387 "\"abcdxyz\" =~ /[a-z]+/" "[a-z]+" nil nil nil nil "abcdxyz" nil 1 0 "abcdxyz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 388 "\"12-34\" =~ /[\\d-]+/" "[\\d-]+" nil nil nil nil "12-34" nil 1 0 "12-34" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 389 "\"aaa\" =~ /[\\d-]+/" "[\\d-]+" nil nil nil nil "aaa" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 390 "\"12-34z\" =~ /[\\d-z]+/" "[\\d-z]+" nil nil nil nil "12-34z" nil 1 0 "12-34z" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 391 "\"aaa\" =~ /[\\d-z]+/" "[\\d-z]+" nil nil nil nil "aaa" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 392 "\"\\\\\" =~ /\\x5c/" "\\x5c" nil nil nil nil "\\" nil 1 0 "\\" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 393 "\"the Zoo\" =~ /\\x20Z/" "\\x20Z" nil nil nil nil "the Zoo" nil 1 0 " Z" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 394 "\"Zulu\" =~ /\\x20Z/" "\\x20Z" nil nil nil nil "Zulu" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 395 "\"abcabc\" =~ /(abc)\\1/i" "(abc)\\1" t nil nil nil "abcabc" nil 1 0 "abcabc" (list "abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 396 "\"ABCabc\" =~ /(abc)\\1/i" "(abc)\\1" t nil nil nil "ABCabc" nil 1 0 "ABCabc" (list "ABC" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 397 "\"abcABC\" =~ /(abc)\\1/i" "(abc)\\1" t nil nil nil "abcABC" nil 1 0 "abcABC" (list "abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 398 "\"ab{3cd\" =~ /ab{3cd/" "ab{3cd" nil nil nil nil "ab{3cd" nil 1 0 "ab{3cd" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 399 "\"ab{3,cd\" =~ /ab{3,cd/" "ab{3,cd" nil nil nil nil "ab{3,cd" nil 1 0 "ab{3,cd" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 400 "\"ab{3,4a}cd\" =~ /ab{3,4a}cd/" "ab{3,4a}cd" nil nil nil nil "ab{3,4a}cd" nil 1 0 "ab{3,4a}cd" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 401 "\"{4,5a}bc\" =~ /{4,5a}bc/" "{4,5a}bc" nil nil nil nil "{4,5a}bc" nil 1 0 "{4,5a}bc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 402 "\"a\\rb\" =~ /^a.b/" "^a.b" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "a" list) (push (list (code-char 13)) list) (push "b" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "a" list) (push (list (code-char 13)) list) (push "b" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 403 "\"a\\nb\" =~ /^a.b/" "^a.b" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "a" list) (push (list (code-char 10)) list) (push "b" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 404 "\"abc\" =~ /abc$/" "abc$" nil nil nil nil "abc" nil 1 0 "abc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 405 "\"abc\\n\" =~ /abc$/" "abc$" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 10)) list)(nreverse list))) nil 1 0 "abc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 406 "\"abc\\ndef\" =~ /abc$/" "abc$" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 10)) list) (push "def" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 407 "\"abc\\x53\" =~ /(abc)\\123/" "(abc)\\123" nil nil nil nil "abcS" nil 1 0 "abcS" (list "abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 408 "\"abc\\x93\" =~ /(abc)\\223/" "(abc)\\223" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 147)) list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 147)) list)(nreverse list))) (list "abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 409 "\"abc\\xd3\" =~ /(abc)\\323/" "(abc)\\323" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 211)) list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 211)) list)(nreverse list))) (list "abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 410 "\"abc\\x40\" =~ /(abc)\\500/" "(abc)\\500" nil nil nil nil "abc@" nil 1 0 "abc@" (list "abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 411 "\"abc\\100\" =~ /(abc)\\500/" "(abc)\\500" nil nil nil nil "abc@" nil 1 0 "abc@" (list "abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 412 "\"abc\\x400\" =~ /(abc)\\5000/" "(abc)\\5000" nil nil nil nil "abc@0" nil 1 0 "abc@0" (list "abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 413 "\"abc\\x40\\x30\" =~ /(abc)\\5000/" "(abc)\\5000" nil nil nil nil "abc@0" nil 1 0 "abc@0" (list "abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 414 "\"abc\\1000\" =~ /(abc)\\5000/" "(abc)\\5000" nil nil nil nil "abc@0" nil 1 0 "abc@0" (list "abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 415 "\"abc\\100\\x30\" =~ /(abc)\\5000/" "(abc)\\5000" nil nil nil nil "abc@0" nil 1 0 "abc@0" (list "abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 416 "\"abc\\100\\060\" =~ /(abc)\\5000/" "(abc)\\5000" nil nil nil nil "abc@0" nil 1 0 "abc@0" (list "abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 417 "\"abc\\100\\60\" =~ /(abc)\\5000/" "(abc)\\5000" nil nil nil nil "abc@0" nil 1 0 "abc@0" (list "abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 418 "\"abc\\081\" =~ /abc\\81/" "abc\\81" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 0)) list) (push "81" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 0)) list) (push "81" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 419 "\"abc\\0\\x38\\x31\" =~ /abc\\81/" "abc\\81" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 0)) list) (push "81" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 0)) list) (push "81" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 420 "\"abc\\091\" =~ /abc\\91/" "abc\\91" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 0)) list) (push "91" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 0)) list) (push "91" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 421 "\"abc\\0\\x39\\x31\" =~ /abc\\91/" "abc\\91" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 0)) list) (push "91" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 0)) list) (push "91" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "abcdefghijkllS" (list "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 (cl-ppcre::string-list-to-simple-string (let (list) (push "abcdefghijk" list) (push (list (code-char 10)) list) (push "S" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "abcdefghijk" list) (push (list (code-char 10)) list) (push "S" list)(nreverse list))) (list "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 424 "\"abgdef\" =~ /ab\\gdef/" "ab\\gdef" nil nil nil nil "abgdef" nil 1 0 "abgdef" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 425 "\"bc\" =~ /a{0}bc/" "a{0}bc" nil nil nil nil "bc" nil 1 0 "bc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 426 "\"xyz\" =~ /(a|(bc)){0,0}?xyz/" "(a|(bc)){0,0}?xyz" nil nil nil nil "xyz" nil 1 0 "xyz" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 427 "\"abc\\010de\" =~ /abc[\\10]de/" "abc[\\10]de" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 8)) list) (push "de" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 8)) list) (push "de" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 428 "\"abc\\1de\" =~ /abc[\\1]de/" "abc[\\1]de" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 1)) list) (push "de" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 1)) list) (push "de" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 429 "\"abc\\1de\" =~ /(abc)[\\1]de/" "(abc)[\\1]de" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 1)) list) (push "de" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 1)) list) (push "de" list)(nreverse list))) (list "abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 430 "\"a\\nb\" =~ /a.b(?s)/" "a.b(?s)" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "a" list) (push (list (code-char 10)) list) (push "b" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 431 "\"baNOTccccd\" =~ /^([^a])([^\\b])([^c]*)([^d]{3,4})/" "^([^a])([^\\b])([^c]*)([^d]{3,4})" nil nil nil nil "baNOTccccd" nil 1 0 "baNOTcccc" (list "b" "a" "NOT" "cccc" nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 432 "\"baNOTcccd\" =~ /^([^a])([^\\b])([^c]*)([^d]{3,4})/" "^([^a])([^\\b])([^c]*)([^d]{3,4})" nil nil nil nil "baNOTcccd" nil 1 0 "baNOTccc" (list "b" "a" "NOT" "ccc" nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 433 "\"baNOTccd\" =~ /^([^a])([^\\b])([^c]*)([^d]{3,4})/" "^([^a])([^\\b])([^c]*)([^d]{3,4})" nil nil nil nil "baNOTccd" nil 1 0 "baNOTcc" (list "b" "a" "NO" "Tcc" nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 434 "\"bacccd\" =~ /^([^a])([^\\b])([^c]*)([^d]{3,4})/" "^([^a])([^\\b])([^c]*)([^d]{3,4})" nil nil nil nil "bacccd" nil 1 0 "baccc" (list "b" "a" "" "ccc" nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 435 "\"anything\" =~ /^([^a])([^\\b])([^c]*)([^d]{3,4})/" "^([^a])([^\\b])([^c]*)([^d]{3,4})" nil nil nil nil "anything" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 436 "\"b\\bc\" =~ /^([^a])([^\\b])([^c]*)([^d]{3,4})/" "^([^a])([^\\b])([^c]*)([^d]{3,4})" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "b" list) (push (list (code-char 8)) list) (push "c" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 437 "\"baccd\" =~ /^([^a])([^\\b])([^c]*)([^d]{3,4})/" "^([^a])([^\\b])([^c]*)([^d]{3,4})" nil nil nil nil "baccd" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 438 "\"Abc\" =~ /[^a]/" "[^a]" nil nil nil nil "Abc" nil 1 0 "A" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 439 "\"Abc\" =~ /[^a]/i" "[^a]" t nil nil nil "Abc" nil 1 0 "b" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 440 "\"AAAaAbc\" =~ /[^a]+/" "[^a]+" nil nil nil nil "AAAaAbc" nil 1 0 "AAA" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 441 "\"AAAaAbc\" =~ /[^a]+/i" "[^a]+" t nil nil nil "AAAaAbc" nil 1 0 "bc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 442 "\"bbb\\nccc\" =~ /[^a]+/" "[^a]+" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "bbb" list) (push (list (code-char 10)) list) (push "ccc" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "bbb" list) (push (list (code-char 10)) list) (push "ccc" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 443 "\"abc\" =~ /[^k]$/" "[^k]$" nil nil nil nil "abc" nil 1 0 "c" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 444 "\"abk\" =~ /[^k]$/" "[^k]$" nil nil nil nil "abk" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 445 "\"abc\" =~ /[^k]{2,3}$/" "[^k]{2,3}$" nil nil nil nil "abc" nil 1 0 "abc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 446 "\"kbc\" =~ /[^k]{2,3}$/" "[^k]{2,3}$" nil nil nil nil "kbc" nil 1 0 "bc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 447 "\"kabc\" =~ /[^k]{2,3}$/" "[^k]{2,3}$" nil nil nil nil "kabc" nil 1 0 "abc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 448 "\"abk\" =~ /[^k]{2,3}$/" "[^k]{2,3}$" nil nil nil nil "abk" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 449 "\"akb\" =~ /[^k]{2,3}$/" "[^k]{2,3}$" nil nil nil nil "akb" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 450 "\"akk\" =~ /[^k]{2,3}$/" "[^k]{2,3}$" nil nil nil nil "akk" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 451 "\"12345678\\@a.b.c.d\" =~ /^\\d{8,}\\@.+[^k]$/" "^\\d{8,}\\@.+[^k]$" nil nil nil nil "12345678@a.b.c.d" nil 1 0 "12345678@a.b.c.d" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 452 "\"123456789\\@x.y.z\" =~ /^\\d{8,}\\@.+[^k]$/" "^\\d{8,}\\@.+[^k]$" nil nil nil nil "123456789@x.y.z" nil 1 0 "123456789@x.y.z" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 453 "\"12345678\\@x.y.uk\" =~ /^\\d{8,}\\@.+[^k]$/" "^\\d{8,}\\@.+[^k]$" nil nil nil nil "12345678@x.y.uk" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 454 "\"1234567\\@a.b.c.d\" =~ /^\\d{8,}\\@.+[^k]$/" "^\\d{8,}\\@.+[^k]$" nil nil nil nil "1234567@a.b.c.d" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 455 "\"aaaaaaaaa\" =~ /(a)\\1{8,}/" "(a)\\1{8,}" nil nil nil nil "aaaaaaaaa" nil 1 0 "aaaaaaaaa" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 456 "\"aaaaaaaaaa\" =~ /(a)\\1{8,}/" "(a)\\1{8,}" nil nil nil nil "aaaaaaaaaa" nil 1 0 "aaaaaaaaaa" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 457 "\"aaaaaaa\" =~ /(a)\\1{8,}/" "(a)\\1{8,}" nil nil nil nil "aaaaaaa" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 458 "\"aaaabcd\" =~ /[^a]/" "[^a]" nil nil nil nil "aaaabcd" nil 1 0 "b" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 459 "\"aaAabcd\" =~ /[^a]/" "[^a]" nil nil nil nil "aaAabcd" nil 1 0 "A" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 460 "\"aaaabcd\" =~ /[^a]/i" "[^a]" t nil nil nil "aaaabcd" nil 1 0 "b" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 461 "\"aaAabcd\" =~ /[^a]/i" "[^a]" t nil nil nil "aaAabcd" nil 1 0 "b" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 462 "\"aaaabcd\" =~ /[^az]/" "[^az]" nil nil nil nil "aaaabcd" nil 1 0 "b" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 463 "\"aaAabcd\" =~ /[^az]/" "[^az]" nil nil nil nil "aaAabcd" nil 1 0 "A" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 464 "\"aaaabcd\" =~ /[^az]/i" "[^az]" t nil nil nil "aaaabcd" nil 1 0 "b" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 465 "\"aaAabcd\" =~ /[^az]/i" "[^az]" t nil nil nil "aaAabcd" nil 1 0 "b" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list) (push (list (code-char 1)) list) (push (list (code-char 2)) list) (push (list (code-char 3)) list) (push (list (code-char 4)) list) (push (list (code-char 5)) list) (push (list (code-char 6)) list) (push (list (code-char 7)) list) (push (list (code-char 8)) list) (push (list (code-char 9)) list) (push (list (code-char 10)) list) (push (list (code-char 11)) list) (push (list (code-char 12)) list) (push (list (code-char 13)) list) (push (list (code-char 14)) list) (push (list (code-char 15)) list) (push (list (code-char 16)) list) (push (list (code-char 17)) list) (push (list (code-char 18)) list) (push (list (code-char 19)) list) (push (list (code-char 20)) list) (push (list (code-char 21)) list) (push (list (code-char 22)) list) (push (list (code-char 23)) list) (push (list (code-char 24)) list) (push (list (code-char 25)) list) (push (list (code-char 26)) list) (push (list (code-char 27)) list) (push (list (code-char 28)) list) (push (list (code-char 29)) list) (push (list (code-char 30)) list) (push (list (code-char 31)) list) (push " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" list) (push (list (code-char 127)) list) (push (list (code-char 128)) list) (push (list (code-char 129)) list) (push (list (code-char 130)) list) (push (list (code-char 131)) list) (push (list (code-char 132)) list) (push (list (code-char 133)) list) (push (list (code-char 134)) list) (push (list (code-char 135)) list) (push (list (code-char 136)) list) (push (list (code-char 137)) list) (push (list (code-char 138)) list) (push (list (code-char 139)) list) (push (list (code-char 140)) list) (push (list (code-char 141)) list) (push (list (code-char 142)) list) (push (list (code-char 143)) list) (push (list (code-char 144)) list) (push (list (code-char 145)) list) (push (list (code-char 146)) list) (push (list (code-char 147)) list) (push (list (code-char 148)) list) (push (list (code-char 149)) list) (push (list (code-char 150)) list) (push (list (code-char 151)) list) (push (list (code-char 152)) list) (push (list (code-char 153)) list) (push (list (code-char 154)) list) (push (list (code-char 155)) list) (push (list (code-char 156)) list) (push (list (code-char 157)) list) (push (list (code-char 158)) list) (push (list (code-char 159)) list) (push (list (code-char 160)) list) (push (list (code-char 161)) list) (push (list (code-char 162)) list) (push (list (code-char 163)) list) (push (list (code-char 164)) list) (push (list (code-char 165)) list) (push (list (code-char 166)) list) (push (list (code-char 167)) list) (push (list (code-char 168)) list) (push (list (code-char 169)) list) (push (list (code-char 170)) list) (push (list (code-char 171)) list) (push (list (code-char 172)) list) (push (list (code-char 173)) list) (push (list (code-char 174)) list) (push (list (code-char 175)) list) (push (list (code-char 176)) list) (push (list (code-char 177)) list) (push (list (code-char 178)) list) (push (list (code-char 179)) list) (push (list (code-char 180)) list) (push (list (code-char 181)) list) (push (list (code-char 182)) list) (push (list (code-char 183)) list) (push (list (code-char 184)) list) (push (list (code-char 185)) list) (push (list (code-char 186)) list) (push (list (code-char 187)) list) (push (list (code-char 188)) list) (push (list (code-char 189)) list) (push (list (code-char 190)) list) (push (list (code-char 191)) list) (push (list (code-char 192)) list) (push (list (code-char 193)) list) (push (list (code-char 194)) list) (push (list (code-char 195)) list) (push (list (code-char 196)) list) (push (list (code-char 197)) list) (push (list (code-char 198)) list) (push (list (code-char 199)) list) (push (list (code-char 200)) list) (push (list (code-char 201)) list) (push (list (code-char 202)) list) (push (list (code-char 203)) list) (push (list (code-char 204)) list) (push (list (code-char 205)) list) (push (list (code-char 206)) list) (push (list (code-char 207)) list) (push (list (code-char 208)) list) (push (list (code-char 209)) list) (push (list (code-char 210)) list) (push (list (code-char 211)) list) (push (list (code-char 212)) list) (push (list (code-char 213)) list) (push (list (code-char 214)) list) (push (list (code-char 215)) list) (push (list (code-char 216)) list) (push (list (code-char 217)) list) (push (list (code-char 218)) list) (push (list (code-char 219)) list) (push (list (code-char 220)) list) (push (list (code-char 221)) list) (push (list (code-char 222)) list) (push (list (code-char 223)) list) (push (list (code-char 224)) list) (push (list (code-char 225)) list) (push (list (code-char 226)) list) (push (list (code-char 227)) list) (push (list (code-char 228)) list) (push (list (code-char 229)) list) (push (list (code-char 230)) list) (push (list (code-char 231)) list) (push (list (code-char 232)) list) (push (list (code-char 233)) list) (push (list (code-char 234)) list) (push (list (code-char 235)) list) (push (list (code-char 236)) list) (push (list (code-char 237)) list) (push (list (code-char 238)) list) (push (list (code-char 239)) list) (push (list (code-char 240)) list) (push (list (code-char 241)) list) (push (list (code-char 242)) list) (push (list (code-char 243)) list) (push (list (code-char 244)) list) (push (list (code-char 245)) list) (push (list (code-char 246)) list) (push (list (code-char 247)) list) (push (list (code-char 248)) list) (push (list (code-char 249)) list) (push (list (code-char 250)) list) (push (list (code-char 251)) list) (push (list (code-char 252)) list) (push (list (code-char 253)) list) (push (list (code-char 254)) list) (push (list (code-char 255)) list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list) (push (list (code-char 1)) list) (push (list (code-char 2)) list) (push (list (code-char 3)) list) (push (list (code-char 4)) list) (push (list (code-char 5)) list) (push (list (code-char 6)) list) (push (list (code-char 7)) list) (push (list (code-char 8)) list) (push (list (code-char 9)) list) (push (list (code-char 10)) list) (push (list (code-char 11)) list) (push (list (code-char 12)) list) (push (list (code-char 13)) list) (push (list (code-char 14)) list) (push (list (code-char 15)) list) (push (list (code-char 16)) list) (push (list (code-char 17)) list) (push (list (code-char 18)) list) (push (list (code-char 19)) list) (push (list (code-char 20)) list) (push (list (code-char 21)) list) (push (list (code-char 22)) list) (push (list (code-char 23)) list) (push (list (code-char 24)) list) (push (list (code-char 25)) list) (push (list (code-char 26)) list) (push (list (code-char 27)) list) (push (list (code-char 28)) list) (push (list (code-char 29)) list) (push (list (code-char 30)) list) (push (list (code-char 31)) list) (push " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" list) (push (list (code-char 127)) list) (push (list (code-char 128)) list) (push (list (code-char 129)) list) (push (list (code-char 130)) list) (push (list (code-char 131)) list) (push (list (code-char 132)) list) (push (list (code-char 133)) list) (push (list (code-char 134)) list) (push (list (code-char 135)) list) (push (list (code-char 136)) list) (push (list (code-char 137)) list) (push (list (code-char 138)) list) (push (list (code-char 139)) list) (push (list (code-char 140)) list) (push (list (code-char 141)) list) (push (list (code-char 142)) list) (push (list (code-char 143)) list) (push (list (code-char 144)) list) (push (list (code-char 145)) list) (push (list (code-char 146)) list) (push (list (code-char 147)) list) (push (list (code-char 148)) list) (push (list (code-char 149)) list) (push (list (code-char 150)) list) (push (list (code-char 151)) list) (push (list (code-char 152)) list) (push (list (code-char 153)) list) (push (list (code-char 154)) list) (push (list (code-char 155)) list) (push (list (code-char 156)) list) (push (list (code-char 157)) list) (push (list (code-char 158)) list) (push (list (code-char 159)) list) (push (list (code-char 160)) list) (push (list (code-char 161)) list) (push (list (code-char 162)) list) (push (list (code-char 163)) list) (push (list (code-char 164)) list) (push (list (code-char 165)) list) (push (list (code-char 166)) list) (push (list (code-char 167)) list) (push (list (code-char 168)) list) (push (list (code-char 169)) list) (push (list (code-char 170)) list) (push (list (code-char 171)) list) (push (list (code-char 172)) list) (push (list (code-char 173)) list) (push (list (code-char 174)) list) (push (list (code-char 175)) list) (push (list (code-char 176)) list) (push (list (code-char 177)) list) (push (list (code-char 178)) list) (push (list (code-char 179)) list) (push (list (code-char 180)) list) (push (list (code-char 181)) list) (push (list (code-char 182)) list) (push (list (code-char 183)) list) (push (list (code-char 184)) list) (push (list (code-char 185)) list) (push (list (code-char 186)) list) (push (list (code-char 187)) list) (push (list (code-char 188)) list) (push (list (code-char 189)) list) (push (list (code-char 190)) list) (push (list (code-char 191)) list) (push (list (code-char 192)) list) (push (list (code-char 193)) list) (push (list (code-char 194)) list) (push (list (code-char 195)) list) (push (list (code-char 196)) list) (push (list (code-char 197)) list) (push (list (code-char 198)) list) (push (list (code-char 199)) list) (push (list (code-char 200)) list) (push (list (code-char 201)) list) (push (list (code-char 202)) list) (push (list (code-char 203)) list) (push (list (code-char 204)) list) (push (list (code-char 205)) list) (push (list (code-char 206)) list) (push (list (code-char 207)) list) (push (list (code-char 208)) list) (push (list (code-char 209)) list) (push (list (code-char 210)) list) (push (list (code-char 211)) list) (push (list (code-char 212)) list) (push (list (code-char 213)) list) (push (list (code-char 214)) list) (push (list (code-char 215)) list) (push (list (code-char 216)) list) (push (list (code-char 217)) list) (push (list (code-char 218)) list) (push (list (code-char 219)) list) (push (list (code-char 220)) list) (push (list (code-char 221)) list) (push (list (code-char 222)) list) (push (list (code-char 223)) list) (push (list (code-char 224)) list) (push (list (code-char 225)) list) (push (list (code-char 226)) list) (push (list (code-char 227)) list) (push (list (code-char 228)) list) (push (list (code-char 229)) list) (push (list (code-char 230)) list) (push (list (code-char 231)) list) (push (list (code-char 232)) list) (push (list (code-char 233)) list) (push (list (code-char 234)) list) (push (list (code-char 235)) list) (push (list (code-char 236)) list) (push (list (code-char 237)) list) (push (list (code-char 238)) list) (push (list (code-char 239)) list) (push (list (code-char 240)) list) (push (list (code-char 241)) list) (push (list (code-char 242)) list) (push (list (code-char 243)) list) (push (list (code-char 244)) list) (push (list (code-char 245)) list) (push (list (code-char 246)) list) (push (list (code-char 247)) list) (push (list (code-char 248)) list) (push (list (code-char 249)) list) (push (list (code-char 250)) list) (push (list (code-char 251)) list) (push (list (code-char 252)) list) (push (list (code-char 253)) list) (push (list (code-char 254)) list) (push (list (code-char 255)) list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 467 "\"xxxxxxxxxxxPSTAIREISLLxxxxxxxxx\" =~ /P[^*]TAIRE[^*]{1,6}?LL/" "P[^*]TAIRE[^*]{1,6}?LL" nil nil nil nil "xxxxxxxxxxxPSTAIREISLLxxxxxxxxx" nil 1 0 "PSTAIREISLL" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 468 "\"xxxxxxxxxxxPSTAIREISLLxxxxxxxxx\" =~ /P[^*]TAIRE[^*]{1,}?LL/" "P[^*]TAIRE[^*]{1,}?LL" nil nil nil nil "xxxxxxxxxxxPSTAIREISLLxxxxxxxxx" nil 1 0 "PSTAIREISLL" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 469 "\"1.230003938\" =~ /(\\.\\d\\d[1-9]?)\\d+/" "(\\.\\d\\d[1-9]?)\\d+" nil nil nil nil "1.230003938" nil 1 0 ".230003938" (list ".23" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 470 "\"1.875000282\" =~ /(\\.\\d\\d[1-9]?)\\d+/" "(\\.\\d\\d[1-9]?)\\d+" nil nil nil nil "1.875000282" nil 1 0 ".875000282" (list ".875" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 471 "\"1.235\" =~ /(\\.\\d\\d[1-9]?)\\d+/" "(\\.\\d\\d[1-9]?)\\d+" nil nil nil nil "1.235" nil 1 0 ".235" (list ".23" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 472 "\"1.230003938\" =~ /(\\.\\d\\d((?=0)|\\d(?=\\d)))/" "(\\.\\d\\d((?=0)|\\d(?=\\d)))" nil nil nil nil "1.230003938" nil 1 0 ".23" (list ".23" "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 473 "\"1.875000282\" =~ /(\\.\\d\\d((?=0)|\\d(?=\\d)))/" "(\\.\\d\\d((?=0)|\\d(?=\\d)))" nil nil nil nil "1.875000282" nil 1 0 ".875" (list ".875" "5" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 474 "\"1.235\" =~ /(\\.\\d\\d((?=0)|\\d(?=\\d)))/" "(\\.\\d\\d((?=0)|\\d(?=\\d)))" nil nil nil nil "1.235" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 475 "\"ab\" =~ /a(?)b/" "a(?)b" nil nil nil nil "ab" nil 1 0 "ab" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "foo table" (list "foo" "table" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "food is under the bar in the bar" (list "d is under the bar in the " nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "food is under the bar" (list "d is under the " nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 479 "\"I have 2 numbers: 53147\" =~ /(.*)(\\d*)/" "(.*)(\\d*)" nil nil nil nil "I have 2 numbers: 53147" nil 1 0 "I have 2 numbers: 53147" (list "I have 2 numbers: 53147" "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 480 "\"I have 2 numbers: 53147\" =~ /(.*)(\\d+)/" "(.*)(\\d+)" nil nil nil nil "I have 2 numbers: 53147" nil 1 0 "I have 2 numbers: 53147" (list "I have 2 numbers: 5314" "7" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 481 "\"I have 2 numbers: 53147\" =~ /(.*?)(\\d*)/" "(.*?)(\\d*)" nil nil nil nil "I have 2 numbers: 53147" nil 1 0 "" (list "" "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 482 "\"I have 2 numbers: 53147\" =~ /(.*?)(\\d+)/" "(.*?)(\\d+)" nil nil nil nil "I have 2 numbers: 53147" nil 1 0 "I have 2" (list "I have " "2" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 483 "\"I have 2 numbers: 53147\" =~ /(.*)(\\d+)$/" "(.*)(\\d+)$" nil nil nil nil "I have 2 numbers: 53147" nil 1 0 "I have 2 numbers: 53147" (list "I have 2 numbers: 5314" "7" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 484 "\"I have 2 numbers: 53147\" =~ /(.*?)(\\d+)$/" "(.*?)(\\d+)$" nil nil nil nil "I have 2 numbers: 53147" nil 1 0 "I have 2 numbers: 53147" (list "I have 2 numbers: " "53147" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 485 "\"I have 2 numbers: 53147\" =~ /(.*)\\b(\\d+)$/" "(.*)\\b(\\d+)$" nil nil nil nil "I have 2 numbers: 53147" nil 1 0 "I have 2 numbers: 53147" (list "I have 2 numbers: " "53147" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 486 "\"I have 2 numbers: 53147\" =~ /(.*\\D)(\\d+)$/" "(.*\\D)(\\d+)$" nil nil nil nil "I have 2 numbers: 53147" nil 1 0 "I have 2 numbers: 53147" (list "I have 2 numbers: " "53147" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 487 "\"ABC123\" =~ /^\\D*(?!123)/" "^\\D*(?!123)" nil nil nil nil "ABC123" nil 1 0 "AB" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 488 "\"ABC445\" =~ /^(\\D*)(?=\\d)(?!123)/" "^(\\D*)(?=\\d)(?!123)" nil nil nil nil "ABC445" nil 1 0 "ABC" (list "ABC" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 489 "\"ABC123\" =~ /^(\\D*)(?=\\d)(?!123)/" "^(\\D*)(?=\\d)(?!123)" nil nil nil nil "ABC123" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 490 "\"W46]789\" =~ /^[W-]46]/" "^[W-]46]" nil nil nil nil "W46]789" nil 1 0 "W46]" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 491 "\"-46]789\" =~ /^[W-]46]/" "^[W-]46]" nil nil nil nil "-46]789" nil 1 0 "-46]" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 492 "\"Wall\" =~ /^[W-]46]/" "^[W-]46]" nil nil nil nil "Wall" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 493 "\"Zebra\" =~ /^[W-]46]/" "^[W-]46]" nil nil nil nil "Zebra" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 494 "\"42\" =~ /^[W-]46]/" "^[W-]46]" nil nil nil nil "42" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 495 "\"[abcd]\" =~ /^[W-]46]/" "^[W-]46]" nil nil nil nil "[abcd]" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 496 "\"]abcd[\" =~ /^[W-]46]/" "^[W-]46]" nil nil nil nil "]abcd[" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 497 "\"W46]789\" =~ /^[W-\\]46]/" "^[W-\\]46]" nil nil nil nil "W46]789" nil 1 0 "W" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 498 "\"Wall\" =~ /^[W-\\]46]/" "^[W-\\]46]" nil nil nil nil "Wall" nil 1 0 "W" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 499 "\"Zebra\" =~ /^[W-\\]46]/" "^[W-\\]46]" nil nil nil nil "Zebra" nil 1 0 "Z" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 500 "\"Xylophone\" =~ /^[W-\\]46]/" "^[W-\\]46]" nil nil nil nil "Xylophone" nil 1 0 "X" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 501 "\"42\" =~ /^[W-\\]46]/" "^[W-\\]46]" nil nil nil nil "42" nil 1 0 "4" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 502 "\"[abcd]\" =~ /^[W-\\]46]/" "^[W-\\]46]" nil nil nil nil "[abcd]" nil 1 0 "[" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 503 "\"]abcd[\" =~ /^[W-\\]46]/" "^[W-\\]46]" nil nil nil nil "]abcd[" nil 1 0 "]" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 504 "\"\\\\backslash\" =~ /^[W-\\]46]/" "^[W-\\]46]" nil nil nil nil "\\backslash" nil 1 0 "\\" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 505 "\"-46]789\" =~ /^[W-\\]46]/" "^[W-\\]46]" nil nil nil nil "-46]789" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 506 "\"well\" =~ /^[W-\\]46]/" "^[W-\\]46]" nil nil nil nil "well" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 "01/01/2000" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "word cat dog elephant mussel cow horse canary baboon snake shark otherword" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 511 "\"bcd\" =~ /^(a){0,0}/" "^(a){0,0}" nil nil nil nil "bcd" nil 1 0 "" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 512 "\"abc\" =~ /^(a){0,0}/" "^(a){0,0}" nil nil nil nil "abc" nil 1 0 "" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 513 "\"aab\" =~ /^(a){0,0}/" "^(a){0,0}" nil nil nil nil "aab" nil 1 0 "" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 514 "\"bcd\" =~ /^(a){0,1}/" "^(a){0,1}" nil nil nil nil "bcd" nil 1 0 "" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 515 "\"abc\" =~ /^(a){0,1}/" "^(a){0,1}" nil nil nil nil "abc" nil 1 0 "a" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 516 "\"aab\" =~ /^(a){0,1}/" "^(a){0,1}" nil nil nil nil "aab" nil 1 0 "a" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 517 "\"bcd\" =~ /^(a){0,2}/" "^(a){0,2}" nil nil nil nil "bcd" nil 1 0 "" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 518 "\"abc\" =~ /^(a){0,2}/" "^(a){0,2}" nil nil nil nil "abc" nil 1 0 "a" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 519 "\"aab\" =~ /^(a){0,2}/" "^(a){0,2}" nil nil nil nil "aab" nil 1 0 "aa" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 520 "\"bcd\" =~ /^(a){0,3}/" "^(a){0,3}" nil nil nil nil "bcd" nil 1 0 "" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 521 "\"abc\" =~ /^(a){0,3}/" "^(a){0,3}" nil nil nil nil "abc" nil 1 0 "a" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 522 "\"aab\" =~ /^(a){0,3}/" "^(a){0,3}" nil nil nil nil "aab" nil 1 0 "aa" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 523 "\"aaa\" =~ /^(a){0,3}/" "^(a){0,3}" nil nil nil nil "aaa" nil 1 0 "aaa" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 524 "\"bcd\" =~ /^(a){0,}/" "^(a){0,}" nil nil nil nil "bcd" nil 1 0 "" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 525 "\"abc\" =~ /^(a){0,}/" "^(a){0,}" nil nil nil nil "abc" nil 1 0 "a" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 526 "\"aab\" =~ /^(a){0,}/" "^(a){0,}" nil nil nil nil "aab" nil 1 0 "aa" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 527 "\"aaa\" =~ /^(a){0,}/" "^(a){0,}" nil nil nil nil "aaa" nil 1 0 "aaa" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 528 "\"aaaaaaaa\" =~ /^(a){0,}/" "^(a){0,}" nil nil nil nil "aaaaaaaa" nil 1 0 "aaaaaaaa" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 529 "\"bcd\" =~ /^(a){1,1}/" "^(a){1,1}" nil nil nil nil "bcd" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 530 "\"abc\" =~ /^(a){1,1}/" "^(a){1,1}" nil nil nil nil "abc" nil 1 0 "a" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 531 "\"aab\" =~ /^(a){1,1}/" "^(a){1,1}" nil nil nil nil "aab" nil 1 0 "a" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 532 "\"bcd\" =~ /^(a){1,2}/" "^(a){1,2}" nil nil nil nil "bcd" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 533 "\"abc\" =~ /^(a){1,2}/" "^(a){1,2}" nil nil nil nil "abc" nil 1 0 "a" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 534 "\"aab\" =~ /^(a){1,2}/" "^(a){1,2}" nil nil nil nil "aab" nil 1 0 "aa" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 535 "\"bcd\" =~ /^(a){1,3}/" "^(a){1,3}" nil nil nil nil "bcd" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 536 "\"abc\" =~ /^(a){1,3}/" "^(a){1,3}" nil nil nil nil "abc" nil 1 0 "a" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 537 "\"aab\" =~ /^(a){1,3}/" "^(a){1,3}" nil nil nil nil "aab" nil 1 0 "aa" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 538 "\"aaa\" =~ /^(a){1,3}/" "^(a){1,3}" nil nil nil nil "aaa" nil 1 0 "aaa" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 539 "\"bcd\" =~ /^(a){1,}/" "^(a){1,}" nil nil nil nil "bcd" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 540 "\"abc\" =~ /^(a){1,}/" "^(a){1,}" nil nil nil nil "abc" nil 1 0 "a" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 541 "\"aab\" =~ /^(a){1,}/" "^(a){1,}" nil nil nil nil "aab" nil 1 0 "aa" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 542 "\"aaa\" =~ /^(a){1,}/" "^(a){1,}" nil nil nil nil "aaa" nil 1 0 "aaa" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 543 "\"aaaaaaaa\" =~ /^(a){1,}/" "^(a){1,}" nil nil nil nil "aaaaaaaa" nil 1 0 "aaaaaaaa" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 544 "\"borfle\\nbib.gif\\nno\" =~ /.*\\.gif/" ".*\\.gif" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "borfle" list) (push (list (code-char 10)) list) (push "bib.gif" list) (push (list (code-char 10)) list) (push "no" list)(nreverse list))) nil 1 0 "bib.gif" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 545 "\"borfle\\nbib.gif\\nno\" =~ /.{0,}\\.gif/" ".{0,}\\.gif" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "borfle" list) (push (list (code-char 10)) list) (push "bib.gif" list) (push (list (code-char 10)) list) (push "no" list)(nreverse list))) nil 1 0 "bib.gif" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 546 "\"borfle\\nbib.gif\\nno\" =~ /.*\\.gif/m" ".*\\.gif" nil t nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "borfle" list) (push (list (code-char 10)) list) (push "bib.gif" list) (push (list (code-char 10)) list) (push "no" list)(nreverse list))) nil 1 0 "bib.gif" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 547 "\"borfle\\nbib.gif\\nno\" =~ /.*\\.gif/s" ".*\\.gif" nil nil t nil (cl-ppcre::string-list-to-simple-string (let (list) (push "borfle" list) (push (list (code-char 10)) list) (push "bib.gif" list) (push (list (code-char 10)) list) (push "no" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "borfle" list) (push (list (code-char 10)) list) (push "bib.gif" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 548 "\"borfle\\nbib.gif\\nno\" =~ /.*\\.gif/ms" ".*\\.gif" nil t t nil (cl-ppcre::string-list-to-simple-string (let (list) (push "borfle" list) (push (list (code-char 10)) list) (push "bib.gif" list) (push (list (code-char 10)) list) (push "no" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "borfle" list) (push (list (code-char 10)) list) (push "bib.gif" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 549 "\"borfle\\nbib.gif\\nno\" =~ /.*$/" ".*$" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "borfle" list) (push (list (code-char 10)) list) (push "bib.gif" list) (push (list (code-char 10)) list) (push "no" list)(nreverse list))) nil 1 0 "no" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 550 "\"borfle\\nbib.gif\\nno\" =~ /.*$/m" ".*$" nil t nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "borfle" list) (push (list (code-char 10)) list) (push "bib.gif" list) (push (list (code-char 10)) list) (push "no" list)(nreverse list))) nil 1 0 "borfle" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 551 "\"borfle\\nbib.gif\\nno\" =~ /.*$/s" ".*$" nil nil t nil (cl-ppcre::string-list-to-simple-string (let (list) (push "borfle" list) (push (list (code-char 10)) list) (push "bib.gif" list) (push (list (code-char 10)) list) (push "no" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "borfle" list) (push (list (code-char 10)) list) (push "bib.gif" list) (push (list (code-char 10)) list) (push "no" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 552 "\"borfle\\nbib.gif\\nno\" =~ /.*$/ms" ".*$" nil t t nil (cl-ppcre::string-list-to-simple-string (let (list) (push "borfle" list) (push (list (code-char 10)) list) (push "bib.gif" list) (push (list (code-char 10)) list) (push "no" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "borfle" list) (push (list (code-char 10)) list) (push "bib.gif" list) (push (list (code-char 10)) list) (push "no" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 553 "\"borfle\\nbib.gif\\nno\\n\" =~ /.*$/" ".*$" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "borfle" list) (push (list (code-char 10)) list) (push "bib.gif" list) (push (list (code-char 10)) list) (push "no" list) (push (list (code-char 10)) list)(nreverse list))) nil 1 0 "no" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 554 "\"borfle\\nbib.gif\\nno\\n\" =~ /.*$/m" ".*$" nil t nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "borfle" list) (push (list (code-char 10)) list) (push "bib.gif" list) (push (list (code-char 10)) list) (push "no" list) (push (list (code-char 10)) list)(nreverse list))) nil 1 0 "borfle" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 555 "\"borfle\\nbib.gif\\nno\\n\" =~ /.*$/s" ".*$" nil nil t nil (cl-ppcre::string-list-to-simple-string (let (list) (push "borfle" list) (push (list (code-char 10)) list) (push "bib.gif" list) (push (list (code-char 10)) list) (push "no" list) (push (list (code-char 10)) list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "borfle" list) (push (list (code-char 10)) list) (push "bib.gif" list) (push (list (code-char 10)) list) (push "no" list) (push (list (code-char 10)) list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 556 "\"borfle\\nbib.gif\\nno\\n\" =~ /.*$/ms" ".*$" nil t t nil (cl-ppcre::string-list-to-simple-string (let (list) (push "borfle" list) (push (list (code-char 10)) list) (push "bib.gif" list) (push (list (code-char 10)) list) (push "no" list) (push (list (code-char 10)) list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "borfle" list) (push (list (code-char 10)) list) (push "bib.gif" list) (push (list (code-char 10)) list) (push "no" list) (push (list (code-char 10)) list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 557 "\"abcde\\n1234Xyz\" =~ /(.*X|^B)/" "(.*X|^B)" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abcde" list) (push (list (code-char 10)) list) (push "1234Xyz" list)(nreverse list))) nil 1 0 "1234X" (list "1234X" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 558 "\"BarFoo\" =~ /(.*X|^B)/" "(.*X|^B)" nil nil nil nil "BarFoo" nil 1 0 "B" (list "B" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 559 "\"abcde\\nBar\" =~ /(.*X|^B)/" "(.*X|^B)" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abcde" list) (push (list (code-char 10)) list) (push "Bar" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 560 "\"abcde\\n1234Xyz\" =~ /(.*X|^B)/m" "(.*X|^B)" nil t nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abcde" list) (push (list (code-char 10)) list) (push "1234Xyz" list)(nreverse list))) nil 1 0 "1234X" (list "1234X" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 561 "\"BarFoo\" =~ /(.*X|^B)/m" "(.*X|^B)" nil t nil nil "BarFoo" nil 1 0 "B" (list "B" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 562 "\"abcde\\nBar\" =~ /(.*X|^B)/m" "(.*X|^B)" nil t nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abcde" list) (push (list (code-char 10)) list) (push "Bar" list)(nreverse list))) nil 1 0 "B" (list "B" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 563 "\"abcde\\n1234Xyz\" =~ /(.*X|^B)/s" "(.*X|^B)" nil nil t nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abcde" list) (push (list (code-char 10)) list) (push "1234Xyz" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "abcde" list) (push (list (code-char 10)) list) (push "1234X" list)(nreverse list))) (list (cl-ppcre::string-list-to-simple-string (let (list) (push "abcde" list) (push (list (code-char 10)) list) (push "1234X" list)(nreverse list))) nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 564 "\"BarFoo\" =~ /(.*X|^B)/s" "(.*X|^B)" nil nil t nil "BarFoo" nil 1 0 "B" (list "B" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 565 "\"abcde\\nBar\" =~ /(.*X|^B)/s" "(.*X|^B)" nil nil t nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abcde" list) (push (list (code-char 10)) list) (push "Bar" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 566 "\"abcde\\n1234Xyz\" =~ /(.*X|^B)/ms" "(.*X|^B)" nil t t nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abcde" list) (push (list (code-char 10)) list) (push "1234Xyz" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "abcde" list) (push (list (code-char 10)) list) (push "1234X" list)(nreverse list))) (list (cl-ppcre::string-list-to-simple-string (let (list) (push "abcde" list) (push (list (code-char 10)) list) (push "1234X" list)(nreverse list))) nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 567 "\"BarFoo\" =~ /(.*X|^B)/ms" "(.*X|^B)" nil t t nil "BarFoo" nil 1 0 "B" (list "B" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 568 "\"abcde\\nBar\" =~ /(.*X|^B)/ms" "(.*X|^B)" nil t t nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abcde" list) (push (list (code-char 10)) list) (push "Bar" list)(nreverse list))) nil 1 0 "B" (list "B" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 569 "\"abcde\\n1234Xyz\" =~ /(?s)(.*X|^B)/" "(?s)(.*X|^B)" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abcde" list) (push (list (code-char 10)) list) (push "1234Xyz" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "abcde" list) (push (list (code-char 10)) list) (push "1234X" list)(nreverse list))) (list (cl-ppcre::string-list-to-simple-string (let (list) (push "abcde" list) (push (list (code-char 10)) list) (push "1234X" list)(nreverse list))) nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 570 "\"BarFoo\" =~ /(?s)(.*X|^B)/" "(?s)(.*X|^B)" nil nil nil nil "BarFoo" nil 1 0 "B" (list "B" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 571 "\"abcde\\nBar\" =~ /(?s)(.*X|^B)/" "(?s)(.*X|^B)" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abcde" list) (push (list (code-char 10)) list) (push "Bar" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 572 "\"abcde\\n1234Xyz\" =~ /(?s:.*X|^B)/" "(?s:.*X|^B)" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abcde" list) (push (list (code-char 10)) list) (push "1234Xyz" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "abcde" list) (push (list (code-char 10)) list) (push "1234X" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 573 "\"BarFoo\" =~ /(?s:.*X|^B)/" "(?s:.*X|^B)" nil nil nil nil "BarFoo" nil 1 0 "B" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 574 "\"abcde\\nBar\" =~ /(?s:.*X|^B)/" "(?s:.*X|^B)" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abcde" list) (push (list (code-char 10)) list) (push "Bar" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 575 "\"abc\\nB\" =~ /^.*B/" "^.*B" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 10)) list) (push "B" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 576 "\"abc\\nB\" =~ /(?s)^.*B/" "(?s)^.*B" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 10)) list) (push "B" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 10)) list) (push "B" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 577 "\"abc\\nB\" =~ /(?m)^.*B/" "(?m)^.*B" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 10)) list) (push "B" list)(nreverse list))) nil 1 0 "B" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 578 "\"abc\\nB\" =~ /(?ms)^.*B/" "(?ms)^.*B" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 10)) list) (push "B" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 10)) list) (push "B" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 579 "\"abc\\nB\" =~ /(?ms)^B/" "(?ms)^B" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "abc" list) (push (list (code-char 10)) list) (push "B" list)(nreverse list))) nil 1 0 "B" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 580 "\"B\\n\" =~ /(?s)B$/" "(?s)B$" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "B" list) (push (list (code-char 10)) list)(nreverse list))) nil 1 0 "B" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "123456654321" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "123456654321" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "123456654321" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 584 "\"abcabcabcabc\" =~ /^[abc]{12}/" "^[abc]{12}" nil nil nil nil "abcabcabcabc" nil 1 0 "abcabcabcabc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 585 "\"abcabcabcabc\" =~ /^[a-c]{12}/" "^[a-c]{12}" nil nil nil nil "abcabcabcabc" nil 1 0 "abcabcabcabc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 586 "\"abcabcabcabc\" =~ /^(a|b|c){12}/" "^(a|b|c){12}" nil nil nil nil "abcabcabcabc" nil 1 0 "abcabcabcabc" (list "c" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 587 "\"n\" =~ /^[abcdefghijklmnopqrstuvwxy0123456789]/" "^[abcdefghijklmnopqrstuvwxy0123456789]" nil nil nil nil "n" nil 1 0 "n" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 588 "\"z\" =~ /^[abcdefghijklmnopqrstuvwxy0123456789]/" "^[abcdefghijklmnopqrstuvwxy0123456789]" nil nil nil nil "z" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 589 "\"abcd\" =~ /abcde{0,0}/" "abcde{0,0}" nil nil nil nil "abcd" nil 1 0 "abcd" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 590 "\"abce\" =~ /abcde{0,0}/" "abcde{0,0}" nil nil nil nil "abce" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 591 "\"abe\" =~ /ab[cd]{0,0}e/" "ab[cd]{0,0}e" nil nil nil nil "abe" nil 1 0 "abe" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 592 "\"abcde\" =~ /ab[cd]{0,0}e/" "ab[cd]{0,0}e" nil nil nil nil "abcde" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 593 "\"abd\" =~ /ab(c){0,0}d/" "ab(c){0,0}d" nil nil nil nil "abd" nil 1 0 "abd" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 594 "\"abcd\" =~ /ab(c){0,0}d/" "ab(c){0,0}d" nil nil nil nil "abcd" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 595 "\"a\" =~ /a(b*)/" "a(b*)" nil nil nil nil "a" nil 1 0 "a" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 596 "\"ab\" =~ /a(b*)/" "a(b*)" nil nil nil nil "ab" nil 1 0 "ab" (list "b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 597 "\"abbbb\" =~ /a(b*)/" "a(b*)" nil nil nil nil "abbbb" nil 1 0 "abbbb" (list "bbbb" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 598 "\"bbbbb\" =~ /a(b*)/" "a(b*)" nil nil nil nil "bbbbb" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 599 "\"abe\" =~ /ab\\d{0}e/" "ab\\d{0}e" nil nil nil nil "abe" nil 1 0 "abe" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 600 "\"ab1e\" =~ /ab\\d{0}e/" "ab\\d{0}e" nil nil nil nil "ab1e" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 601 "\"the \\\"quick\\\" brown fox\" =~ /\"([^\\\\\"]+|\\\\.)*\"/" "\"([^\\\\\"]+|\\\\.)*\"" nil nil nil nil "the \"quick\" brown fox" nil 1 0 "\"quick\"" (list "quick" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 602 "\"\\\"the \\\\\\\"quick\\\\\\\" brown fox\\\"\" =~ /\"([^\\\\\"]+|\\\\.)*\"/" "\"([^\\\\\"]+|\\\\.)*\"" nil nil nil nil "\"the \\\"quick\\\" brown fox\"" nil 1 0 "\"the \\\"quick\\\" brown fox\"" (list " brown fox" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 603 "\"abc\" =~ /.*?/" ".*?" nil nil nil nil "abc" nil 1 0 "" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 604 "\"abc\" =~ /\\b/" "\\b" nil nil nil nil "abc" nil 1 0 "" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 605 "\"abc\" =~ /\\b/" "\\b" nil nil nil nil "abc" nil 1 0 "" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 606 "\"abc\" =~ /(?#)/" "" nil nil nil nil "abc" nil 1 0 "" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 607 "\"43.Word Processor
(N-1286)
Lega lstaff.comCA - Statewide\" =~ /]{0,})>]{0,})>([\\d]{0,}\\.)(.*)((
([\\w\\W\\s\\d][^<>]{0,})|[\\s]{0,}))<\\/a><\\/TD>]{0,})>([\\w\\W\\s\\d][^<>]{0,})<\\/TD>]{0,})>([\\w\\W\\s\\d][^<>]{0,})<\\/TD><\\/TR>/is" "]{0,})>]{0,})>([\\d]{0,}\\.)(.*)((
([\\w\\W\\s\\d][^<>]{0,})|[\\s]{0,}))<\\/a><\\/TD>]{0,})>([\\w\\W\\s\\d][^<>]{0,})<\\/TD>]{0,})>([\\w\\W\\s\\d][^<>]{0,})<\\/TD><\\/TR>" t nil t nil "43.Word Processor
(N-1286)
Lega lstaff.comCA - Statewide" nil 1 0 "43.Word Processor
(N-1286)
Lega lstaff.comCA - Statewide" (list " BGCOLOR='#DBE9E9'" " align=left valign=top" "43." "Word Processor
(N-1286)" "" "" nil " align=left valign=top" "Lega lstaff.com" " align=left valign=top" "CA - Statewide" nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 608 "\"acb\" =~ /a[^a]b/" "a[^a]b" nil nil nil nil "acb" nil 1 0 "acb" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 609 "\"a\\nb\" =~ /a[^a]b/" "a[^a]b" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "a" list) (push (list (code-char 10)) list) (push "b" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "a" list) (push (list (code-char 10)) list) (push "b" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 610 "\"acb\" =~ /a.b/" "a.b" nil nil nil nil "acb" nil 1 0 "acb" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 611 "\"a\\nb\" =~ /a.b/" "a.b" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "a" list) (push (list (code-char 10)) list) (push "b" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 612 "\"acb\" =~ /a[^a]b/s" "a[^a]b" nil nil t nil "acb" nil 1 0 "acb" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 613 "\"a\\nb\" =~ /a[^a]b/s" "a[^a]b" nil nil t nil (cl-ppcre::string-list-to-simple-string (let (list) (push "a" list) (push (list (code-char 10)) list) (push "b" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "a" list) (push (list (code-char 10)) list) (push "b" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 614 "\"acb\" =~ /a.b/s" "a.b" nil nil t nil "acb" nil 1 0 "acb" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 615 "\"a\\nb\" =~ /a.b/s" "a.b" nil nil t nil (cl-ppcre::string-list-to-simple-string (let (list) (push "a" list) (push (list (code-char 10)) list) (push "b" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "a" list) (push (list (code-char 10)) list) (push "b" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 616 "\"bac\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "bac" nil 1 0 "bac" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 617 "\"bbac\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "bbac" nil 1 0 "bbac" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 618 "\"bbbac\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "bbbac" nil 1 0 "bbbac" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 619 "\"bbbbac\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "bbbbac" nil 1 0 "bbbbac" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 620 "\"bbbbbac\" =~ /^(b+?|a){1,2}?c/" "^(b+?|a){1,2}?c" nil nil nil nil "bbbbbac" nil 1 0 "bbbbbac" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 621 "\"bac\" =~ /^(b+|a){1,2}?c/" "^(b+|a){1,2}?c" nil nil nil nil "bac" nil 1 0 "bac" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 622 "\"bbac\" =~ /^(b+|a){1,2}?c/" "^(b+|a){1,2}?c" nil nil nil nil "bbac" nil 1 0 "bbac" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 623 "\"bbbac\" =~ /^(b+|a){1,2}?c/" "^(b+|a){1,2}?c" nil nil nil nil "bbbac" nil 1 0 "bbbac" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 624 "\"bbbbac\" =~ /^(b+|a){1,2}?c/" "^(b+|a){1,2}?c" nil nil nil nil "bbbbac" nil 1 0 "bbbbac" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 625 "\"bbbbbac\" =~ /^(b+|a){1,2}?c/" "^(b+|a){1,2}?c" nil nil nil nil "bbbbbac" nil 1 0 "bbbbbac" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 626 "\"x\\nb\\n\" =~ /(?!\\A)x/m" "(?!\\A)x" nil t nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "x" list) (push (list (code-char 10)) list) (push "b" list) (push (list (code-char 10)) list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 627 "\"a\\bx\\n\" =~ /(?!\\A)x/m" "(?!\\A)x" nil t nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "a" list) (push (list (code-char 8)) list) (push "x" list) (push (list (code-char 10)) list)(nreverse list))) nil 1 0 "x" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 628 "\"\\0{ab}\" =~ /\\x0{ab}/" "\\x0{ab}" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list) (push "{ab}" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list) (push "{ab}" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 629 "\"CD\" =~ /(A|B)*?CD/" "(A|B)*?CD" nil nil nil nil "CD" nil 1 0 "CD" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 630 "\"CD\" =~ /(A|B)*CD/" "(A|B)*CD" nil nil nil nil "CD" nil 1 0 "CD" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 631 "\"ABABAB\" =~ /(AB)*?\\1/" "(AB)*?\\1" nil nil nil nil "ABABAB" nil 1 0 "ABAB" (list "AB" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 632 "\"ABABAB\" =~ /(AB)*\\1/" "(AB)*\\1" nil nil nil nil "ABABAB" nil 1 0 "ABABAB" (list "AB" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 633 "\"doesn't matter\" =~ /(/" "(" nil nil nil nil "doesn't matter" t 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 634 "\"doesn't matter\" =~ /(x)\\2/" "(x)\\2" nil nil nil nil "doesn't matter" t 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 635 "\"aaaaaaaaaac\" =~ /((a{0,5}){0,5}){0,5}[c]/" "((a{0,5}){0,5}){0,5}[c]" nil nil nil nil "aaaaaaaaaac" nil 1 0 "aaaaaaaaaac" (list "" "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 636 "\"aaaaaaaaaa\" =~ /((a{0,5}){0,5}){0,5}[c]/" "((a{0,5}){0,5}){0,5}[c]" nil nil nil nil "aaaaaaaaaa" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 637 "\"aaaaaaaaaac\" =~ /((a{0,5}){0,5})*[c]/" "((a{0,5}){0,5})*[c]" nil nil nil nil "aaaaaaaaaac" nil 1 0 "aaaaaaaaaac" (list "" "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 638 "\"aaaaaaaaaa\" =~ /((a{0,5}){0,5})*[c]/" "((a{0,5}){0,5})*[c]" nil nil nil nil "aaaaaaaaaa" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 639 "\"a\" =~ /(\\b)*a/" "(\\b)*a" nil nil nil nil "a" nil 1 0 "a" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 640 "\"ab\" =~ /(a)*b/" "(a)*b" nil nil nil nil "ab" nil 1 0 "ab" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 641 "\"ab\" =~ /(a|)*b/" "(a|)*b" nil nil nil nil "ab" nil 1 0 "ab" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 642 "\"b\" =~ /(a|)*b/" "(a|)*b" nil nil nil nil "b" nil 1 0 "b" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 643 "\"x\" =~ /(a|)*b/" "(a|)*b" nil nil nil nil "x" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 644 "\"abab\" =~ /^(?:(a)|(b))*\\1\\2$/" "^(?:(a)|(b))*\\1\\2$" nil nil nil nil "abab" nil 1 0 "abab" (list "a" "b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 645 "\"abcxabcydef\" =~ /abc[^x]def/" "abc[^x]def" nil nil nil nil "abcxabcydef" nil 1 0 "abcydef" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 646 "\"aax\" =~ /^(a|\\1x)*$/" "^(a|\\1x)*$" nil nil nil nil "aax" nil 1 0 "aax" (list "ax" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 647 "\"aaxa\" =~ /^(a|\\1x)*$/" "^(a|\\1x)*$" nil nil nil nil "aaxa" nil 1 0 "aaxa" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 648 "\"@{['']}\" =~ /(?#)/" "" nil nil nil nil "" nil 1 0 "" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 649 "\"ab\" =~ /^(?:(a)|(b))*$/" "^(?:(a)|(b))*$" nil nil nil nil "ab" nil 1 0 "ab" (list "a" "b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 650 "\"a\" =~ /[\\0]/" "[\\0]" nil nil nil nil "a" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 651 "\"\\0\" =~ /[\\0]/" "[\\0]" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 652 "\"a\" =~ /[\\1]/" "[\\1]" nil nil nil nil "a" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 653 "\"\\1\" =~ /[\\1]/" "[\\1]" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 1)) list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 1)) list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 654 "\"doesn't matter\" =~ /\\10()()()()()()()()()/" "\\10()()()()()()()()()" nil nil nil nil "doesn't matter" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 655 "\"a\" =~ /\\10()()()()()()()()()()/" "\\10()()()()()()()()()()" nil nil nil nil "a" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 656 "\"ab\" =~ /a(?<)b/" "a(?<)b" nil nil nil nil "ab" nil 1 0 "ab" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 657 "\"doesn't matter\" =~ /[]/" "[]" nil nil nil nil "doesn't matter" t 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 658 "\"doesn't matter\" =~ /[\\]/" "[\\]" nil nil nil nil "doesn't matter" t 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 659 "\"a\" =~ /()/" "()" nil nil nil nil "a" nil 1 0 "" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 660 "\"x\" =~ /[\\x]/" "[\\x]" nil nil nil nil "x" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 661 "\"\\0\" =~ /[\\x]/" "[\\x]" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 662 "\"a\" =~ /((a)*)*/" "((a)*)*" nil nil nil nil "a" nil 1 0 "a" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 663 "\"a\" =~ /()a\\1/" "()a\\1" nil nil nil nil "a" nil 1 0 "a" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 664 "\"a\" =~ /a\\1()/" "a\\1()" nil nil nil nil "a" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 665 "\"aaa\" =~ /a(?i)a(?-i)a/" "a(?i)a(?-i)a" nil nil nil nil "aaa" nil 1 0 "aaa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 666 "\"aAa\" =~ /a(?i)a(?-i)a/" "a(?i)a(?-i)a" nil nil nil nil "aAa" nil 1 0 "aAa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 667 "\"aAA\" =~ /a(?i)a(?-i)a/" "a(?i)a(?-i)a" nil nil nil nil "aAA" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aaaaa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aAaAa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 676 "\"a\" =~ /\\x/" "\\x" nil nil nil nil "a" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 677 "\"X\" =~ /\\x/" "\\x" nil nil nil nil "X" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 678 "\"\\0\" =~ /\\x/" "\\x" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 679 "\"a\" =~ /[a-c-e]/" "[a-c-e]" nil nil nil nil "a" nil 1 0 "a" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 680 "\"b\" =~ /[a-c-e]/" "[a-c-e]" nil nil nil nil "b" nil 1 0 "b" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 681 "\"d\" =~ /[a-c-e]/" "[a-c-e]" nil nil nil nil "d" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 682 "\"-\" =~ /[a-c-e]/" "[a-c-e]" nil nil nil nil "-" nil 1 0 "-" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 683 "\"b\" =~ /[b-\\d]/" "[b-\\d]" nil nil nil nil "b" nil 1 0 "b" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 684 "\"c\" =~ /[b-\\d]/" "[b-\\d]" nil nil nil nil "c" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 685 "\"d\" =~ /[b-\\d]/" "[b-\\d]" nil nil nil nil "d" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 686 "\"-\" =~ /[b-\\d]/" "[b-\\d]" nil nil nil nil "-" nil 1 0 "-" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 687 "\"1\" =~ /[b-\\d]/" "[b-\\d]" nil nil nil nil "1" nil 1 0 "1" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 688 "\"d\" =~ /[\\d-f]/" "[\\d-f]" nil nil nil nil "d" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 689 "\"e\" =~ /[\\d-f]/" "[\\d-f]" nil nil nil nil "e" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 690 "\"f\" =~ /[\\d-f]/" "[\\d-f]" nil nil nil nil "f" nil 1 0 "f" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 691 "\"-\" =~ /[\\d-f]/" "[\\d-f]" nil nil nil nil "-" nil 1 0 "-" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 692 "\"1\" =~ /[\\d-f]/" "[\\d-f]" nil nil nil nil "1" nil 1 0 "1" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 693 "\"doesn't matter\" =~ /[/" "[" nil nil nil nil "doesn't matter" t 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 694 "\"]\" =~ /]/" "]" nil nil nil nil "]" nil 1 0 "]" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 695 "\"a\" =~ /]/" "]" nil nil nil nil "a" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 696 "\"doesn't matter\" =~ /[]/" "[]" nil nil nil nil "doesn't matter" t 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 697 "\"-\" =~ /[-a-c]/" "[-a-c]" nil nil nil nil "-" nil 1 0 "-" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 698 "\"a\" =~ /[-a-c]/" "[-a-c]" nil nil nil nil "a" nil 1 0 "a" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 699 "\"b\" =~ /[-a-c]/" "[-a-c]" nil nil nil nil "b" nil 1 0 "b" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 700 "\"d\" =~ /[-a-c]/" "[-a-c]" nil nil nil nil "d" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 701 "\"-\" =~ /[a-c-]/" "[a-c-]" nil nil nil nil "-" nil 1 0 "-" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 702 "\"a\" =~ /[a-c-]/" "[a-c-]" nil nil nil nil "a" nil 1 0 "a" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 703 "\"b\" =~ /[a-c-]/" "[a-c-]" nil nil nil nil "b" nil 1 0 "b" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 704 "\"d\" =~ /[a-c-]/" "[a-c-]" nil nil nil nil "d" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 705 "\"a\" =~ /[-]/" "[-]" nil nil nil nil "a" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 706 "\"-\" =~ /[-]/" "[-]" nil nil nil nil "-" nil 1 0 "-" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 707 "\"a\" =~ /[--]/" "[--]" nil nil nil nil "a" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 708 "\"-\" =~ /[--]/" "[--]" nil nil nil nil "-" nil 1 0 "-" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 709 "\"a\" =~ /[---]/" "[---]" nil nil nil nil "a" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 710 "\"-\" =~ /[---]/" "[---]" nil nil nil nil "-" nil 1 0 "-" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 711 "\"-\" =~ /[--b]/" "[--b]" nil nil nil nil "-" nil 1 0 "-" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 712 "\"a\" =~ /[--b]/" "[--b]" nil nil nil nil "a" nil 1 0 "a" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 713 "\"c\" =~ /[--b]/" "[--b]" nil nil nil nil "c" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 714 "\"doesn't matter\" =~ /[b--]/" "[b--]" nil nil nil nil "doesn't matter" t 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 715 "\"a{\" =~ /a{/" "a{" nil nil nil nil "a{" nil 1 0 "a{" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 716 "\"a{}\" =~ /a{}/" "a{}" nil nil nil nil "a{}" nil 1 0 "a{}" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 717 "\"a{3\" =~ /a{3/" "a{3" nil nil nil nil "a{3" nil 1 0 "a{3" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 718 "\"a{3,\" =~ /a{3,/" "a{3," nil nil nil nil "a{3," nil 1 0 "a{3," (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 719 "\"a{3,3}\" =~ /a{3, 3}/" "a{3, 3}" nil nil nil nil "a{3,3}" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 720 "\"a{3, 3}\" =~ /a{3, 3}/" "a{3, 3}" nil nil nil nil "a{3, 3}" nil 1 0 "a{3, 3}" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 721 "\"aaa\" =~ /a{3, 3}/" "a{3, 3}" nil nil nil nil "aaa" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 722 "\"a{3,3}\" =~ /a{3, 3}/x" "a{3, 3}" nil nil nil t "a{3,3}" nil 1 0 "a{3,3}" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 723 "\"a{3, 3}\" =~ /a{3, 3}/x" "a{3, 3}" nil nil nil t "a{3, 3}" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 724 "\"aaa\" =~ /a{3, 3}/x" "a{3, 3}" nil nil nil t "aaa" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 725 "\"a{3,}\" =~ /a{3, }/" "a{3, }" nil nil nil nil "a{3,}" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 726 "\"a{3, }\" =~ /a{3, }/" "a{3, }" nil nil nil nil "a{3, }" nil 1 0 "a{3, }" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 727 "\"aaa\" =~ /a{3, }/" "a{3, }" nil nil nil nil "aaa" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 728 "\"a{3,}\" =~ /a{3, }/x" "a{3, }" nil nil nil t "a{3,}" nil 1 0 "a{3,}" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 729 "\"a{3, }\" =~ /a{3, }/x" "a{3, }" nil nil nil t "a{3, }" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 730 "\"aaa\" =~ /a{3, }/x" "a{3, }" nil nil nil t "aaa" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 731 "\"\\0 x\" =~ /\\x x/" "\\x x" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list) (push " x" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list) (push " x" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 732 "\"\\0x\" =~ /\\x x/" "\\x x" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list) (push "x" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 733 "\"\\0 x\" =~ /\\x x/x" "\\x x" nil nil nil t (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list) (push " x" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 734 "\"\\0x\" =~ /\\x x/x" "\\x x" nil nil nil t (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list) (push "x" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list) (push "x" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 735 "\"\\0003\" =~ /\\x 3/" "\\x 3" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list) (push "3" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 736 "\"\\000 3\" =~ /\\x 3/" "\\x 3" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list) (push " 3" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list) (push " 3" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 737 "\"x3\" =~ /\\x 3/" "\\x 3" nil nil nil nil "x3" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 738 "\"x 3\" =~ /\\x 3/" "\\x 3" nil nil nil nil "x 3" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 739 "\"\\0003\" =~ /\\x 3/x" "\\x 3" nil nil nil t (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list) (push "3" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list) (push "3" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 740 "\"\\000 3\" =~ /\\x 3/x" "\\x 3" nil nil nil t (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list) (push " 3" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 741 "\"x3\" =~ /\\x 3/x" "\\x 3" nil nil nil t "x3" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 742 "\"x 3\" =~ /\\x 3/x" "\\x 3" nil nil nil t "x 3" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 743 "\"a\" =~ /^a{ 1}$/" "^a{ 1}$" nil nil nil nil "a" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 744 "\"a{ 1}\" =~ /^a{ 1}$/" "^a{ 1}$" nil nil nil nil "a{ 1}" nil 1 0 "a{ 1}" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 745 "\"a{1}\" =~ /^a{ 1}$/" "^a{ 1}$" nil nil nil nil "a{1}" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 746 "\"a\" =~ /^a{ 1}$/x" "^a{ 1}$" nil nil nil t "a" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 747 "\"a{ 1}\" =~ /^a{ 1}$/x" "^a{ 1}$" nil nil nil t "a{ 1}" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 748 "\"a{1}\" =~ /^a{ 1}$/x" "^a{ 1}$" nil nil nil t "a{1}" nil 1 0 "a{1}" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 749 "\"{}\" =~ /{}/" "{}" nil nil nil nil "{}" nil 1 0 "{}" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 750 "\"a\" =~ /{}/" "{}" nil nil nil nil "a" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 751 "\"doesn't matter\" =~ /{1}/" "{1}" nil nil nil nil "doesn't matter" t 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 752 "\"doesn't matter\" =~ /*/" "*" nil nil nil nil "doesn't matter" t 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 753 "\"x\" =~ /|/" "|" nil nil nil nil "x" nil 1 0 "" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 754 "\"\\0000\" =~ /\\0000/" "\\0000" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list) (push "0" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 0)) list) (push "0" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 755 "\"ab\" =~ /a(?<)b/" "a(?<)b" nil nil nil nil "ab" nil 1 0 "ab" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 756 "\"ab\" =~ /a(?i)b/" "a(?i)b" nil nil nil nil "ab" nil 1 0 "ab" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 757 "\"aB\" =~ /a(?i)b/" "a(?i)b" nil nil nil nil "aB" nil 1 0 "aB" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 758 "\"Ab\" =~ /a(?i)b/" "a(?i)b" nil nil nil nil "Ab" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 759 "\"doesn't matter\" =~ /a(?i=a)/" "a(?i=a)" nil nil nil nil "doesn't matter" t 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 760 "\"aa\" =~ /a(?<=a){3000}a/" "a(?<=a){3000}a" nil nil nil nil "aa" nil 1 0 "aa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 761 "\"xa\" =~ /a(?<=a){3000}a/" "a(?<=a){3000}a" nil nil nil nil "xa" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 762 "\"ax\" =~ /a(?<=a){3000}a/" "a(?<=a){3000}a" nil nil nil nil "ax" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 763 "\"aa\" =~ /a(?!=a){3000}a/" "a(?!=a){3000}a" nil nil nil nil "aa" nil 1 0 "aa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 764 "\"ax\" =~ /a(?!=a){3000}a/" "a(?!=a){3000}a" nil nil nil nil "ax" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 765 "\"xa\" =~ /a(?!=a){3000}a/" "a(?!=a){3000}a" nil nil nil nil "xa" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 766 "\"aa\" =~ /a(){3000}a/" "a(){3000}a" nil nil nil nil "aa" nil 1 0 "aa" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 767 "\"ax\" =~ /a(){3000}a/" "a(){3000}a" nil nil nil nil "ax" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 768 "\"xa\" =~ /a(){3000}a/" "a(){3000}a" nil nil nil nil "xa" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 769 "\"aa\" =~ /a(?:){3000}a/" "a(?:){3000}a" nil nil nil nil "aa" nil 1 0 "aa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 770 "\"ax\" =~ /a(?:){3000}a/" "a(?:){3000}a" nil nil nil nil "ax" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 771 "\"aa\" =~ /a(?<=a)*a/" "a(?<=a)*a" nil nil nil nil "aa" nil 1 0 "aa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 772 "\"ax\" =~ /a(?<=a)*a/" "a(?<=a)*a" nil nil nil nil "ax" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 773 "\"xa\" =~ /a(?<=a)*a/" "a(?<=a)*a" nil nil nil nil "xa" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 774 "\"aa\" =~ /a(?!=a)*a/" "a(?!=a)*a" nil nil nil nil "aa" nil 1 0 "aa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 775 "\"ax\" =~ /a(?!=a)*a/" "a(?!=a)*a" nil nil nil nil "ax" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 776 "\"xa\" =~ /a(?!=a)*a/" "a(?!=a)*a" nil nil nil nil "xa" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 777 "\"aa\" =~ /a()*a/" "a()*a" nil nil nil nil "aa" nil 1 0 "aa" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 778 "\"ax\" =~ /a()*a/" "a()*a" nil nil nil nil "ax" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 779 "\"xa\" =~ /a()*a/" "a()*a" nil nil nil nil "xa" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 780 "\"aa\" =~ /a(?:)*a/" "a(?:)*a" nil nil nil nil "aa" nil 1 0 "aa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 781 "\"ax\" =~ /a(?:)*a/" "a(?:)*a" nil nil nil nil "ax" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 782 "\"xa\" =~ /a(?:)*a/" "a(?:)*a" nil nil nil nil "xa" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 783 "\"aa\" =~ /x(?<=a)*a/" "x(?<=a)*a" nil nil nil nil "aa" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 784 "\"xa\" =~ /x(?<=a)*a/" "x(?<=a)*a" nil nil nil nil "xa" nil 1 0 "xa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 785 "\"ax\" =~ /x(?<=a)*a/" "x(?<=a)*a" nil nil nil nil "ax" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 786 "\"aa\" =~ /a(?<=(a))*\\1/" "a(?<=(a))*\\1" nil nil nil nil "aa" nil 1 0 "aa" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 787 "\"aa\" =~ /a(?<=(a))*?\\1/" "a(?<=(a))*?\\1" nil nil nil nil "aa" nil 1 0 "aa" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 788 "\"aa\" =~ /(?=(a)\\1)*aa/" "(?=(a)\\1)*aa" nil nil nil nil "aa" nil 1 0 "aa" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 789 "\"aaaaabbbbb\" =~ /^((a|b){2,5}){2}$/" "^((a|b){2,5}){2}$" nil nil nil nil "aaaaabbbbb" nil 1 0 "aaaaabbbbb" (list "bbbbb" "b" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 790 "\"babc\" =~ /^(b*|ba){1,2}bc/" "^(b*|ba){1,2}bc" nil nil nil nil "babc" nil 1 0 "babc" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 791 "\"bbabc\" =~ /^(b*|ba){1,2}bc/" "^(b*|ba){1,2}bc" nil nil nil nil "bbabc" nil 1 0 "bbabc" (list "ba" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 792 "\"bababc\" =~ /^(b*|ba){1,2}bc/" "^(b*|ba){1,2}bc" nil nil nil nil "bababc" nil 1 0 "bababc" (list "ba" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 793 "\"bababbc\" =~ /^(b*|ba){1,2}bc/" "^(b*|ba){1,2}bc" nil nil nil nil "bababbc" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 794 "\"babababc\" =~ /^(b*|ba){1,2}bc/" "^(b*|ba){1,2}bc" nil nil nil nil "babababc" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 795 "\"aaaaac\" =~ /^a{4,5}(?:c|a)c$/" "^a{4,5}(?:c|a)c$" nil nil nil nil "aaaaac" nil 1 0 "aaaaac" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 796 "\"aaaaaac\" =~ /^a{4,5}(?:c|a)c$/" "^a{4,5}(?:c|a)c$" nil nil nil nil "aaaaaac" nil 1 0 "aaaaaac" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 797 "\"aaaaac\" =~ /^(a|){4,5}(?:c|a)c$/" "^(a|){4,5}(?:c|a)c$" nil nil nil nil "aaaaac" nil 1 0 "aaaaac" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 798 "\"aaaaaac\" =~ /^(a|){4,5}(?:c|a)c$/" "^(a|){4,5}(?:c|a)c$" nil nil nil nil "aaaaaac" nil 1 0 "aaaaaac" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 799 "\"eeexabc\" =~ /(?m:^).abc$/" "(?m:^).abc$" nil nil nil nil "eeexabc" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 800 "\"eee\\nxabc\" =~ /(?m:^).abc$/" "(?m:^).abc$" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "eee" list) (push (list (code-char 10)) list) (push "xabc" list)(nreverse list))) nil 1 0 "xabc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 801 "\"abc\" =~ /(?m:^)abc/" "(?m:^)abc" nil nil nil nil "abc" nil 1 0 "abc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 802 "\"\\nabc\" =~ /(?m:^)abc/" "(?m:^)abc" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 10)) list) (push "abc" list)(nreverse list))) nil 1 0 "abc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 803 (cl-ppcre::string-list-to-simple-string (let (list) (push "\"abc\" =~ " list) (push (list (code-char 10)) list) (push "/^abc/" list)(nreverse list))) "^abc" nil nil nil nil "abc" nil 1 0 "abc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 804 (cl-ppcre::string-list-to-simple-string (let (list) (push "\"\\nabc\" =~ " list) (push (list (code-char 10)) list) (push "/^abc/" list)(nreverse list))) "^abc" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 10)) list) (push "abc" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 805 "\"abc\" =~ /\\Aabc/" "\\Aabc" nil nil nil nil "abc" nil 1 0 "abc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 806 "\"\\nabc\" =~ /\\Aabc/" "\\Aabc" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "" list) (push (list (code-char 10)) list) (push "abc" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 807 "\"foo\" =~ /(?.*/)foo\"" "(?>.*/)foo" nil nil nil nil "/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 "/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 827 "\"1.230003938\" =~ /(?>(\\.\\d\\d[1-9]?))\\d+/" "(?>(\\.\\d\\d[1-9]?))\\d+" nil nil nil nil "1.230003938" nil 1 0 ".230003938" (list ".23" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 828 "\"1.875000282\" =~ /(?>(\\.\\d\\d[1-9]?))\\d+/" "(?>(\\.\\d\\d[1-9]?))\\d+" nil nil nil nil "1.875000282" nil 1 0 ".875000282" (list ".875" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 829 "\"1.235\" =~ /(?>(\\.\\d\\d[1-9]?))\\d+/" "(?>(\\.\\d\\d[1-9]?))\\d+" nil nil nil nil "1.235" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 "now is the time for all good men to come to the aid of the party" (list "party" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 832 "\"12345a\" =~ /(\\d+)(\\w)/" "(\\d+)(\\w)" nil nil nil nil "12345a" nil 1 0 "12345a" (list "12345" "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 833 "\"12345+\" =~ /(\\d+)(\\w)/" "(\\d+)(\\w)" nil nil nil nil "12345+" nil 1 0 "12345" (list "1234" "5" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 834 "\"12345a\" =~ /((?>\\d+))(\\w)/" "((?>\\d+))(\\w)" nil nil nil nil "12345a" nil 1 0 "12345a" (list "12345" "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 835 "\"12345+\" =~ /((?>\\d+))(\\w)/" "((?>\\d+))(\\w)" nil nil nil nil "12345+" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 836 "\"aaab\" =~ /(?>a+)b/" "(?>a+)b" nil nil nil nil "aaab" nil 1 0 "aaab" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 837 "\"aaab\" =~ /((?>a+)b)/" "((?>a+)b)" nil nil nil nil "aaab" nil 1 0 "aaab" (list "aaab" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 838 "\"aaab\" =~ /(?>(a+))b/" "(?>(a+))b" nil nil nil nil "aaab" nil 1 0 "aaab" (list "aaa" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 839 "\"aaabbbccc\" =~ /(?>b)+/" "(?>b)+" nil nil nil nil "aaabbbccc" nil 1 0 "bbb" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 840 "\"aaabbbbccccd\" =~ /(?>a+|b+|c+)*c/" "(?>a+|b+|c+)*c" nil nil nil nil "aaabbbbccccd" nil 1 0 "aaabbbbc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 841 "\"((abc(ade)ufh()()x\" =~ /((?>[^()]+)|\\([^()]*\\))+/" "((?>[^()]+)|\\([^()]*\\))+" nil nil nil nil "((abc(ade)ufh()()x" nil 1 0 "abc(ade)ufh()()x" (list "x" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 842 "\"(abc)\" =~ /\\(((?>[^()]+)|\\([^()]+\\))+\\)/" "\\(((?>[^()]+)|\\([^()]+\\))+\\)" nil nil nil nil "(abc)" nil 1 0 "(abc)" (list "abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 843 "\"(abc(def)xyz)\" =~ /\\(((?>[^()]+)|\\([^()]+\\))+\\)/" "\\(((?>[^()]+)|\\([^()]+\\))+\\)" nil nil nil nil "(abc(def)xyz)" nil 1 0 "(abc(def)xyz)" (list "xyz" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 844 "\"((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\" =~ /\\(((?>[^()]+)|\\([^()]+\\))+\\)/" "\\(((?>[^()]+)|\\([^()]+\\))+\\)" nil nil nil nil "((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 845 "\"ab\" =~ /a(?-i)b/i" "a(?-i)b" t nil nil nil "ab" nil 1 0 "ab" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 846 "\"Ab\" =~ /a(?-i)b/i" "a(?-i)b" t nil nil nil "Ab" nil 1 0 "Ab" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 847 "\"aB\" =~ /a(?-i)b/i" "a(?-i)b" t nil nil nil "aB" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 848 "\"AB\" =~ /a(?-i)b/i" "a(?-i)b" t nil nil nil "AB" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 849 "\"a bcd e\" =~ /(a (?x)b c)d e/" "(a (?x)b c)d e" nil nil nil nil "a bcd e" nil 1 0 "a bcd e" (list "a bc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 851 "\"abcd e\" =~ /(a (?x)b c)d e/" "(a (?x)b c)d e" nil nil nil nil "abcd e" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 852 "\"a bcde\" =~ /(a (?x)b c)d e/" "(a (?x)b c)d e" nil nil nil nil "a bcde" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 "a bcde f" (list "a bcde f" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 854 "\"abcdef\" =~ /(a b(?x)c d (?-x)e f)/" "(a b(?x)c d (?-x)e f)" nil nil nil nil "abcdef" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 855 "\"abc\" =~ /(a(?i)b)c/" "(a(?i)b)c" nil nil nil nil "abc" nil 1 0 "abc" (list "ab" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 856 "\"aBc\" =~ /(a(?i)b)c/" "(a(?i)b)c" nil nil nil nil "aBc" nil 1 0 "aBc" (list "aB" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 857 "\"abC\" =~ /(a(?i)b)c/" "(a(?i)b)c" nil nil nil nil "abC" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 858 "\"aBC\" =~ /(a(?i)b)c/" "(a(?i)b)c" nil nil nil nil "aBC" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 859 "\"Abc\" =~ /(a(?i)b)c/" "(a(?i)b)c" nil nil nil nil "Abc" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 860 "\"ABc\" =~ /(a(?i)b)c/" "(a(?i)b)c" nil nil nil nil "ABc" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 861 "\"ABC\" =~ /(a(?i)b)c/" "(a(?i)b)c" nil nil nil nil "ABC" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 862 "\"AbC\" =~ /(a(?i)b)c/" "(a(?i)b)c" nil nil nil nil "AbC" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 863 "\"abc\" =~ /a(?i:b)c/" "a(?i:b)c" nil nil nil nil "abc" nil 1 0 "abc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 864 "\"aBc\" =~ /a(?i:b)c/" "a(?i:b)c" nil nil nil nil "aBc" nil 1 0 "aBc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 865 "\"ABC\" =~ /a(?i:b)c/" "a(?i:b)c" nil nil nil nil "ABC" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 866 "\"abC\" =~ /a(?i:b)c/" "a(?i:b)c" nil nil nil nil "abC" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 867 "\"aBC\" =~ /a(?i:b)c/" "a(?i:b)c" nil nil nil nil "aBC" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 868 "\"aBc\" =~ /a(?i:b)*c/" "a(?i:b)*c" nil nil nil nil "aBc" nil 1 0 "aBc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 869 "\"aBBc\" =~ /a(?i:b)*c/" "a(?i:b)*c" nil nil nil nil "aBBc" nil 1 0 "aBBc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 870 "\"aBC\" =~ /a(?i:b)*c/" "a(?i:b)*c" nil nil nil nil "aBC" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 871 "\"aBBC\" =~ /a(?i:b)*c/" "a(?i:b)*c" nil nil nil nil "aBBC" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 872 "\"abcd\" =~ /a(?=b(?i)c)\\w\\wd/" "a(?=b(?i)c)\\w\\wd" nil nil nil nil "abcd" nil 1 0 "abcd" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 873 "\"abCd\" =~ /a(?=b(?i)c)\\w\\wd/" "a(?=b(?i)c)\\w\\wd" nil nil nil nil "abCd" nil 1 0 "abCd" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 874 "\"aBCd\" =~ /a(?=b(?i)c)\\w\\wd/" "a(?=b(?i)c)\\w\\wd" nil nil nil nil "aBCd" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 875 "\"abcD\" =~ /a(?=b(?i)c)\\w\\wd/" "a(?=b(?i)c)\\w\\wd" nil nil nil nil "abcD" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 876 "\"more than million\" =~ /(?s-i:more.*than).*million/i" "(?s-i:more.*than).*million" t nil nil nil "more than million" nil 1 0 "more than million" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 877 "\"more than MILLION\" =~ /(?s-i:more.*than).*million/i" "(?s-i:more.*than).*million" t nil nil nil "more than MILLION" nil 1 0 "more than MILLION" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 878 "\"more \\n than Million\" =~ /(?s-i:more.*than).*million/i" "(?s-i:more.*than).*million" t nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "more " list) (push (list (code-char 10)) list) (push " than Million" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "more " list) (push (list (code-char 10)) list) (push " than Million" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 879 "\"MORE THAN MILLION\" =~ /(?s-i:more.*than).*million/i" "(?s-i:more.*than).*million" t nil nil nil "MORE THAN MILLION" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 880 "\"more \\n than \\n million\" =~ /(?s-i:more.*than).*million/i" "(?s-i:more.*than).*million" t nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "more " list) (push (list (code-char 10)) list) (push " than " list) (push (list (code-char 10)) list) (push " million" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 881 "\"more than million\" =~ /(?:(?s-i)more.*than).*million/i" "(?:(?s-i)more.*than).*million" t nil nil nil "more than million" nil 1 0 "more than million" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 882 "\"more than MILLION\" =~ /(?:(?s-i)more.*than).*million/i" "(?:(?s-i)more.*than).*million" t nil nil nil "more than MILLION" nil 1 0 "more than MILLION" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 883 "\"more \\n than Million\" =~ /(?:(?s-i)more.*than).*million/i" "(?:(?s-i)more.*than).*million" t nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "more " list) (push (list (code-char 10)) list) (push " than Million" list)(nreverse list))) nil 1 0 (cl-ppcre::string-list-to-simple-string (let (list) (push "more " list) (push (list (code-char 10)) list) (push " than Million" list)(nreverse list))) (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 884 "\"MORE THAN MILLION\" =~ /(?:(?s-i)more.*than).*million/i" "(?:(?s-i)more.*than).*million" t nil nil nil "MORE THAN MILLION" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 885 "\"more \\n than \\n million\" =~ /(?:(?s-i)more.*than).*million/i" "(?:(?s-i)more.*than).*million" t nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "more " list) (push (list (code-char 10)) list) (push " than " list) (push (list (code-char 10)) list) (push " million" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 886 "\"abc\" =~ /(?>a(?i)b+)+c/" "(?>a(?i)b+)+c" nil nil nil nil "abc" nil 1 0 "abc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 887 "\"aBbc\" =~ /(?>a(?i)b+)+c/" "(?>a(?i)b+)+c" nil nil nil nil "aBbc" nil 1 0 "aBbc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 888 "\"aBBc\" =~ /(?>a(?i)b+)+c/" "(?>a(?i)b+)+c" nil nil nil nil "aBBc" nil 1 0 "aBBc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 889 "\"Abc\" =~ /(?>a(?i)b+)+c/" "(?>a(?i)b+)+c" nil nil nil nil "Abc" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 890 "\"abAb\" =~ /(?>a(?i)b+)+c/" "(?>a(?i)b+)+c" nil nil nil nil "abAb" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 891 "\"abbC\" =~ /(?>a(?i)b+)+c/" "(?>a(?i)b+)+c" nil nil nil nil "abbC" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 892 "\"abc\" =~ /(?=a(?i)b)\\w\\wc/" "(?=a(?i)b)\\w\\wc" nil nil nil nil "abc" nil 1 0 "abc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 893 "\"aBc\" =~ /(?=a(?i)b)\\w\\wc/" "(?=a(?i)b)\\w\\wc" nil nil nil nil "aBc" nil 1 0 "aBc" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 894 "\"Ab\" =~ /(?=a(?i)b)\\w\\wc/" "(?=a(?i)b)\\w\\wc" nil nil nil nil "Ab" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 895 "\"abC\" =~ /(?=a(?i)b)\\w\\wc/" "(?=a(?i)b)\\w\\wc" nil nil nil nil "abC" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 896 "\"aBC\" =~ /(?=a(?i)b)\\w\\wc/" "(?=a(?i)b)\\w\\wc" nil nil nil nil "aBC" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 897 "\"abxxc\" =~ /(?<=a(?i)b)(\\w\\w)c/" "(?<=a(?i)b)(\\w\\w)c" nil nil nil nil "abxxc" nil 1 0 "xxc" (list "xx" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 898 "\"aBxxc\" =~ /(?<=a(?i)b)(\\w\\w)c/" "(?<=a(?i)b)(\\w\\w)c" nil nil nil nil "aBxxc" nil 1 0 "xxc" (list "xx" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 899 "\"Abxxc\" =~ /(?<=a(?i)b)(\\w\\w)c/" "(?<=a(?i)b)(\\w\\w)c" nil nil nil nil "Abxxc" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 900 "\"ABxxc\" =~ /(?<=a(?i)b)(\\w\\w)c/" "(?<=a(?i)b)(\\w\\w)c" nil nil nil nil "ABxxc" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 901 "\"abxxC\" =~ /(?<=a(?i)b)(\\w\\w)c/" "(?<=a(?i)b)(\\w\\w)c" nil nil nil nil "abxxC" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 902 "\"aA\" =~ /(?:(a)|b)(?(1)A|B)/" "(?:(a)|b)(?(1)A|B)" nil nil nil nil "aA" nil 1 0 "aA" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 903 "\"bB\" =~ /(?:(a)|b)(?(1)A|B)/" "(?:(a)|b)(?(1)A|B)" nil nil nil nil "bB" nil 1 0 "bB" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 904 "\"aB\" =~ /(?:(a)|b)(?(1)A|B)/" "(?:(a)|b)(?(1)A|B)" nil nil nil nil "aB" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 905 "\"bA\" =~ /(?:(a)|b)(?(1)A|B)/" "(?:(a)|b)(?(1)A|B)" nil nil nil nil "bA" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 906 "\"aa\" =~ /^(a)?(?(1)a|b)+$/" "^(a)?(?(1)a|b)+$" nil nil nil nil "aa" nil 1 0 "aa" (list "a" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 907 "\"b\" =~ /^(a)?(?(1)a|b)+$/" "^(a)?(?(1)a|b)+$" nil nil nil nil "b" nil 1 0 "b" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 908 "\"bb\" =~ /^(a)?(?(1)a|b)+$/" "^(a)?(?(1)a|b)+$" nil nil nil nil "bb" nil 1 0 "bb" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 909 "\"ab\" =~ /^(a)?(?(1)a|b)+$/" "^(a)?(?(1)a|b)+$" nil nil nil nil "ab" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 910 "\"abc:\" =~ /^(?(?=abc)\\w{3}:|\\d\\d)$/" "^(?(?=abc)\\w{3}:|\\d\\d)$" nil nil nil nil "abc:" nil 1 0 "abc:" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 911 "\"12\" =~ /^(?(?=abc)\\w{3}:|\\d\\d)$/" "^(?(?=abc)\\w{3}:|\\d\\d)$" nil nil nil nil "12" nil 1 0 "12" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 912 "\"123\" =~ /^(?(?=abc)\\w{3}:|\\d\\d)$/" "^(?(?=abc)\\w{3}:|\\d\\d)$" nil nil nil nil "123" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 913 "\"xyz\" =~ /^(?(?=abc)\\w{3}:|\\d\\d)$/" "^(?(?=abc)\\w{3}:|\\d\\d)$" nil nil nil nil "xyz" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 914 "\"abc:\" =~ /^(?(?!abc)\\d\\d|\\w{3}:)$/" "^(?(?!abc)\\d\\d|\\w{3}:)$" nil nil nil nil "abc:" nil 1 0 "abc:" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 915 "\"12\" =~ /^(?(?!abc)\\d\\d|\\w{3}:)$/" "^(?(?!abc)\\d\\d|\\w{3}:)$" nil nil nil nil "12" nil 1 0 "12" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 916 "\"123\" =~ /^(?(?!abc)\\d\\d|\\w{3}:)$/" "^(?(?!abc)\\d\\d|\\w{3}:)$" nil nil nil nil "123" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 917 "\"xyz\" =~ /^(?(?!abc)\\d\\d|\\w{3}:)$/" "^(?(?!abc)\\d\\d|\\w{3}:)$" nil nil nil nil "xyz" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 918 "\"foobar\" =~ /(?(?<=foo)bar|cat)/" "(?(?<=foo)bar|cat)" nil nil nil nil "foobar" nil 1 0 "bar" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 919 "\"cat\" =~ /(?(?<=foo)bar|cat)/" "(?(?<=foo)bar|cat)" nil nil nil nil "cat" nil 1 0 "cat" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 920 "\"fcat\" =~ /(?(?<=foo)bar|cat)/" "(?(?<=foo)bar|cat)" nil nil nil nil "fcat" nil 1 0 "cat" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 921 "\"focat\" =~ /(?(?<=foo)bar|cat)/" "(?(?<=foo)bar|cat)" nil nil nil nil "focat" nil 1 0 "cat" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 922 "\"foocat\" =~ /(?(?<=foo)bar|cat)/" "(?(?<=foo)bar|cat)" nil nil nil nil "foocat" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 923 "\"foobar\" =~ /(?(?a*)*/" "(?>a*)*" nil nil nil nil "a" nil 1 0 "a" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 955 "\"aa\" =~ /(?>a*)*/" "(?>a*)*" nil nil nil nil "aa" nil 1 0 "aa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 956 "\"aaaa\" =~ /(?>a*)*/" "(?>a*)*" nil nil nil nil "aaaa" nil 1 0 "aaaa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 957 "\"abc\" =~ /(abc|)+/" "(abc|)+" nil nil nil nil "abc" nil 1 0 "abc" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 958 "\"abcabc\" =~ /(abc|)+/" "(abc|)+" nil nil nil nil "abcabc" nil 1 0 "abcabc" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 959 "\"abcabcabc\" =~ /(abc|)+/" "(abc|)+" nil nil nil nil "abcabcabc" nil 1 0 "abcabcabc" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 960 "\"xyz\" =~ /(abc|)+/" "(abc|)+" nil nil nil nil "xyz" nil 1 0 "" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 961 "\"a\" =~ /([a]*)*/" "([a]*)*" nil nil nil nil "a" nil 1 0 "a" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 962 "\"aaaaa\" =~ /([a]*)*/" "([a]*)*" nil nil nil nil "aaaaa" nil 1 0 "aaaaa" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 963 "\"a\" =~ /([ab]*)*/" "([ab]*)*" nil nil nil nil "a" nil 1 0 "a" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 964 "\"b\" =~ /([ab]*)*/" "([ab]*)*" nil nil nil nil "b" nil 1 0 "b" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 965 "\"ababab\" =~ /([ab]*)*/" "([ab]*)*" nil nil nil nil "ababab" nil 1 0 "ababab" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 966 "\"aaaabcde\" =~ /([ab]*)*/" "([ab]*)*" nil nil nil nil "aaaabcde" nil 1 0 "aaaab" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 967 "\"bbbb\" =~ /([ab]*)*/" "([ab]*)*" nil nil nil nil "bbbb" nil 1 0 "bbbb" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 968 "\"b\" =~ /([^a]*)*/" "([^a]*)*" nil nil nil nil "b" nil 1 0 "b" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 969 "\"bbbb\" =~ /([^a]*)*/" "([^a]*)*" nil nil nil nil "bbbb" nil 1 0 "bbbb" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 970 "\"aaa\" =~ /([^a]*)*/" "([^a]*)*" nil nil nil nil "aaa" nil 1 0 "" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 971 "\"cccc\" =~ /([^ab]*)*/" "([^ab]*)*" nil nil nil nil "cccc" nil 1 0 "cccc" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 972 "\"abab\" =~ /([^ab]*)*/" "([^ab]*)*" nil nil nil nil "abab" nil 1 0 "" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 973 "\"a\" =~ /([a]*?)*/" "([a]*?)*" nil nil nil nil "a" nil 1 0 "" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 974 "\"aaaa\" =~ /([a]*?)*/" "([a]*?)*" nil nil nil nil "aaaa" nil 1 0 "" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 975 "\"a\" =~ /([ab]*?)*/" "([ab]*?)*" nil nil nil nil "a" nil 1 0 "" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 976 "\"b\" =~ /([ab]*?)*/" "([ab]*?)*" nil nil nil nil "b" nil 1 0 "" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 977 "\"abab\" =~ /([ab]*?)*/" "([ab]*?)*" nil nil nil nil "abab" nil 1 0 "" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 978 "\"baba\" =~ /([ab]*?)*/" "([ab]*?)*" nil nil nil nil "baba" nil 1 0 "" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 979 "\"b\" =~ /([^a]*?)*/" "([^a]*?)*" nil nil nil nil "b" nil 1 0 "" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 980 "\"bbbb\" =~ /([^a]*?)*/" "([^a]*?)*" nil nil nil nil "bbbb" nil 1 0 "" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 981 "\"aaa\" =~ /([^a]*?)*/" "([^a]*?)*" nil nil nil nil "aaa" nil 1 0 "" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 982 "\"c\" =~ /([^ab]*?)*/" "([^ab]*?)*" nil nil nil nil "c" nil 1 0 "" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 983 "\"cccc\" =~ /([^ab]*?)*/" "([^ab]*?)*" nil nil nil nil "cccc" nil 1 0 "" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 984 "\"baba\" =~ /([^ab]*?)*/" "([^ab]*?)*" nil nil nil nil "baba" nil 1 0 "" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 985 "\"a\" =~ /(?>a*)*/" "(?>a*)*" nil nil nil nil "a" nil 1 0 "a" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 986 "\"aaabcde\" =~ /(?>a*)*/" "(?>a*)*" nil nil nil nil "aaabcde" nil 1 0 "aaa" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 987 "\"aaaaa\" =~ /((?>a*))*/" "((?>a*))*" nil nil nil nil "aaaaa" nil 1 0 "aaaaa" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 988 "\"aabbaa\" =~ /((?>a*))*/" "((?>a*))*" nil nil nil nil "aabbaa" nil 1 0 "aa" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 989 "\"aaaaa\" =~ /((?>a*?))*/" "((?>a*?))*" nil nil nil nil "aaaaa" nil 1 0 "" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 990 "\"aabbaa\" =~ /((?>a*?))*/" "((?>a*?))*" nil nil nil nil "aabbaa" nil 1 0 "" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "12-sep-98" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "12-09-98" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 994 "\"foobarfoo\" =~ /(?<=(foo))bar\\1/" "(?<=(foo))bar\\1" nil nil nil nil "foobarfoo" nil 1 0 "barfoo" (list "foo" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 995 "\"foobarfootling\" =~ /(?<=(foo))bar\\1/" "(?<=(foo))bar\\1" nil nil nil nil "foobarfootling" nil 1 0 "barfoo" (list "foo" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 996 "\"foobar\" =~ /(?<=(foo))bar\\1/" "(?<=(foo))bar\\1" nil nil nil nil "foobar" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 997 "\"barfoo\" =~ /(?<=(foo))bar\\1/" "(?<=(foo))bar\\1" nil nil nil nil "barfoo" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 998 "\"saturday\" =~ /(?i:saturday|sunday)/" "(?i:saturday|sunday)" nil nil nil nil "saturday" nil 1 0 "saturday" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 999 "\"sunday\" =~ /(?i:saturday|sunday)/" "(?i:saturday|sunday)" nil nil nil nil "sunday" nil 1 0 "sunday" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1000 "\"Saturday\" =~ /(?i:saturday|sunday)/" "(?i:saturday|sunday)" nil nil nil nil "Saturday" nil 1 0 "Saturday" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1001 "\"Sunday\" =~ /(?i:saturday|sunday)/" "(?i:saturday|sunday)" nil nil nil nil "Sunday" nil 1 0 "Sunday" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1002 "\"SATURDAY\" =~ /(?i:saturday|sunday)/" "(?i:saturday|sunday)" nil nil nil nil "SATURDAY" nil 1 0 "SATURDAY" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1003 "\"SUNDAY\" =~ /(?i:saturday|sunday)/" "(?i:saturday|sunday)" nil nil nil nil "SUNDAY" nil 1 0 "SUNDAY" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1004 "\"SunDay\" =~ /(?i:saturday|sunday)/" "(?i:saturday|sunday)" nil nil nil nil "SunDay" nil 1 0 "SunDay" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1005 "\"abcx\" =~ /(a(?i)bc|BB)x/" "(a(?i)bc|BB)x" nil nil nil nil "abcx" nil 1 0 "abcx" (list "abc" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1006 "\"aBCx\" =~ /(a(?i)bc|BB)x/" "(a(?i)bc|BB)x" nil nil nil nil "aBCx" nil 1 0 "aBCx" (list "aBC" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1007 "\"bbx\" =~ /(a(?i)bc|BB)x/" "(a(?i)bc|BB)x" nil nil nil nil "bbx" nil 1 0 "bbx" (list "bb" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1008 "\"BBx\" =~ /(a(?i)bc|BB)x/" "(a(?i)bc|BB)x" nil nil nil nil "BBx" nil 1 0 "BBx" (list "BB" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1009 "\"abcX\" =~ /(a(?i)bc|BB)x/" "(a(?i)bc|BB)x" nil nil nil nil "abcX" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1010 "\"aBCX\" =~ /(a(?i)bc|BB)x/" "(a(?i)bc|BB)x" nil nil nil nil "aBCX" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1011 "\"bbX\" =~ /(a(?i)bc|BB)x/" "(a(?i)bc|BB)x" nil nil nil nil "bbX" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1012 "\"BBX\" =~ /(a(?i)bc|BB)x/" "(a(?i)bc|BB)x" nil nil nil nil "BBX" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1013 "\"ac\" =~ /^([ab](?i)[cd]|[ef])/" "^([ab](?i)[cd]|[ef])" nil nil nil nil "ac" nil 1 0 "ac" (list "ac" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1014 "\"aC\" =~ /^([ab](?i)[cd]|[ef])/" "^([ab](?i)[cd]|[ef])" nil nil nil nil "aC" nil 1 0 "aC" (list "aC" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1015 "\"bD\" =~ /^([ab](?i)[cd]|[ef])/" "^([ab](?i)[cd]|[ef])" nil nil nil nil "bD" nil 1 0 "bD" (list "bD" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1016 "\"elephant\" =~ /^([ab](?i)[cd]|[ef])/" "^([ab](?i)[cd]|[ef])" nil nil nil nil "elephant" nil 1 0 "e" (list "e" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1017 "\"Europe\" =~ /^([ab](?i)[cd]|[ef])/" "^([ab](?i)[cd]|[ef])" nil nil nil nil "Europe" nil 1 0 "E" (list "E" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1018 "\"frog\" =~ /^([ab](?i)[cd]|[ef])/" "^([ab](?i)[cd]|[ef])" nil nil nil nil "frog" nil 1 0 "f" (list "f" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1019 "\"France\" =~ /^([ab](?i)[cd]|[ef])/" "^([ab](?i)[cd]|[ef])" nil nil nil nil "France" nil 1 0 "F" (list "F" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1020 "\"Africa\" =~ /^([ab](?i)[cd]|[ef])/" "^([ab](?i)[cd]|[ef])" nil nil nil nil "Africa" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 "ab" (list "ab" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "aBd" (list "aBd" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "xy" (list "xy" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "xY" (list "xY" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "z" (list "z" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "Z" (list "Z" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1029 "\"foo\\nbar\" =~ /(?<=foo\\n)^bar/m" "(?<=foo\\n)^bar" nil t nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "foo" list) (push (list (code-char 10)) list) (push "bar" list)(nreverse list))) nil 1 0 "bar" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1030 "\"bar\" =~ /(?<=foo\\n)^bar/m" "(?<=foo\\n)^bar" nil t nil nil "bar" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1031 "\"baz\\nbar\" =~ /(?<=foo\\n)^bar/m" "(?<=foo\\n)^bar" nil t nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "baz" list) (push (list (code-char 10)) list) (push "bar" list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1032 "\"barbaz\" =~ /(?<=(?]&/" "^[<>]&" nil nil nil nil "<&OUT" nil 1 0 "<&" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1369 "\"aaaaaaaaaa\" =~ /^(a\\1?){4}$/" "^(a\\1?){4}$" nil nil nil nil "aaaaaaaaaa" nil 1 0 "aaaaaaaaaa" (list "aaaa" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1370 "\"AB\" =~ /^(a\\1?){4}$/" "^(a\\1?){4}$" nil nil nil nil "AB" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1371 "\"aaaaaaaaa\" =~ /^(a\\1?){4}$/" "^(a\\1?){4}$" nil nil nil nil "aaaaaaaaa" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1372 "\"aaaaaaaaaaa\" =~ /^(a\\1?){4}$/" "^(a\\1?){4}$" nil nil nil nil "aaaaaaaaaaa" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1373 "\"aaaaaaaaaa\" =~ /^(a(?(1)\\1)){4}$/" "^(a(?(1)\\1)){4}$" nil nil nil nil "aaaaaaaaaa" nil 1 0 "aaaaaaaaaa" (list "aaaa" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1374 "\"aaaaaaaaa\" =~ /^(a(?(1)\\1)){4}$/" "^(a(?(1)\\1)){4}$" nil nil nil nil "aaaaaaaaa" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1375 "\"aaaaaaaaaaa\" =~ /^(a(?(1)\\1)){4}$/" "^(a(?(1)\\1)){4}$" nil nil nil nil "aaaaaaaaaaa" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1376 "\"foobar\" =~ /(?:(f)(o)(o)|(b)(a)(r))*/" "(?:(f)(o)(o)|(b)(a)(r))*" nil nil nil nil "foobar" nil 1 0 "foobar" (list "f" "o" "o" "b" "a" "r" nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1377 "\"ab\" =~ /(?<=a)b/" "(?<=a)b" nil nil nil nil "ab" nil 1 0 "b" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1378 "\"cb\" =~ /(?<=a)b/" "(?<=a)b" nil nil nil nil "cb" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1379 "\"b\" =~ /(?<=a)b/" "(?<=a)b" nil nil nil nil "b" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1380 "\"ab\" =~ /(?a+)b/" "(?>a+)b" nil nil nil nil "aaab" nil 1 0 "aaab" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1491 "\"a:[b]:\" =~ /([[:]+)/" "([[:]+)" nil nil nil nil "a:[b]:" nil 1 0 ":[" (list ":[" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1492 "\"a=[b]=\" =~ /([[=]+)/" "([[=]+)" nil nil nil nil "a=[b]=" nil 1 0 "=[" (list "=[" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1493 "\"a.[b].\" =~ /([[.]+)/" "([[.]+)" nil nil nil nil "a.[b]." nil 1 0 ".[" (list ".[" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1494 "\"aaab\" =~ /((?>a+)b)/" "((?>a+)b)" nil nil nil nil "aaab" nil 1 0 "aaab" (list "aaab" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1495 "\"aaab\" =~ /(?>(a+))b/" "(?>(a+))b" nil nil nil nil "aaab" nil 1 0 "aaab" (list "aaa" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1496 "\"((abc(ade)ufh()()x\" =~ /((?>[^()]+)|\\([^()]*\\))+/" "((?>[^()]+)|\\([^()]*\\))+" nil nil nil nil "((abc(ade)ufh()()x" nil 1 0 "abc(ade)ufh()()x" (list "x" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1497 "\"aaab\" =~ /a\\Z/" "a\\Z" nil nil nil nil "aaab" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1498 "\"a\\nb\\n\" =~ /a\\Z/" "a\\Z" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "a" list) (push (list (code-char 10)) list) (push "b" list) (push (list (code-char 10)) list)(nreverse list))) nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1499 "\"a\\nb\\n\" =~ /b\\Z/" "b\\Z" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "a" list) (push (list (code-char 10)) list) (push "b" list) (push (list (code-char 10)) list)(nreverse list))) nil 1 0 "b" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1500 "\"a\\nb\" =~ /b\\Z/" "b\\Z" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "a" list) (push (list (code-char 10)) list) (push "b" list)(nreverse list))) nil 1 0 "b" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1501 "\"a\\nb\" =~ /b\\z/" "b\\z" nil nil nil nil (cl-ppcre::string-list-to-simple-string (let (list) (push "a" list) (push (list (code-char 10)) list) (push "b" list)(nreverse list))) nil 1 0 "b" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1502 "\"a\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "a" nil 1 0 "a" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1503 "\"abc\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "abc" nil 1 0 "abc" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1504 "\"a-b\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "a-b" nil 1 0 "a-b" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1505 "\"0-9\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "0-9" nil 1 0 "0-9" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1506 "\"a.b\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "a.b" nil 1 0 "a.b" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1507 "\"5.6.7\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "5.6.7" nil 1 0 "5.6.7" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 "the.quick.brown.fox" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1509 "\"a100.b200.300c\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "a100.b200.300c" nil 1 0 "a100.b200.300c" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1510 "\"12-ab.1245\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "12-ab.1245" nil 1 0 "12-ab.1245" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1511 "\"\\\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1512 "\".a\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil ".a" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1513 "\"-a\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "-a" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1514 "\"a-\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "a-" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1515 "\"a.\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "a." nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1516 "\"a_b\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "a_b" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1517 "\"a.-\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "a.-" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1518 "\"a..\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "a.." nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1519 "\"ab..bc\" =~ /^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/" "^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$" nil nil nil nil "ab..bc" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1524 "\"alphabetabcd\" =~ /(?>.*)(?<=(abcd|wxyz))/" "(?>.*)(?<=(abcd|wxyz))" nil nil nil nil "alphabetabcd" nil 1 0 "alphabetabcd" (list "abcd" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1525 "\"endingwxyz\" =~ /(?>.*)(?<=(abcd|wxyz))/" "(?>.*)(?<=(abcd|wxyz))" nil nil nil nil "endingwxyz" nil 1 0 "endingwxyz" (list "wxyz" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 "word cat dog elephant mussel cow horse canary baboon snake shark otherword" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 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 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1530 "\"999foo\" =~ /(?<=\\d{3}(?!999))foo/" "(?<=\\d{3}(?!999))foo" nil nil nil nil "999foo" nil 1 0 "foo" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1531 "\"123999foo\" =~ /(?<=\\d{3}(?!999))foo/" "(?<=\\d{3}(?!999))foo" nil nil nil nil "123999foo" nil 1 0 "foo" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1532 "\"123abcfoo\" =~ /(?<=\\d{3}(?!999))foo/" "(?<=\\d{3}(?!999))foo" nil nil nil nil "123abcfoo" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1533 "\"999foo\" =~ /(?<=(?!...999)\\d{3})foo/" "(?<=(?!...999)\\d{3})foo" nil nil nil nil "999foo" nil 1 0 "foo" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1534 "\"123999foo\" =~ /(?<=(?!...999)\\d{3})foo/" "(?<=(?!...999)\\d{3})foo" nil nil nil nil "123999foo" nil 1 0 "foo" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1535 "\"123abcfoo\" =~ /(?<=(?!...999)\\d{3})foo/" "(?<=(?!...999)\\d{3})foo" nil nil nil nil "123abcfoo" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1536 "\"123abcfoo\" =~ /(?<=\\d{3}(?!999)...)foo/" "(?<=\\d{3}(?!999)...)foo" nil nil nil nil "123abcfoo" nil 1 0 "foo" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1537 "\"123456foo\" =~ /(?<=\\d{3}(?!999)...)foo/" "(?<=\\d{3}(?!999)...)foo" nil nil nil nil "123456foo" nil 1 0 "foo" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1538 "\"123999foo\" =~ /(?<=\\d{3}(?!999)...)foo/" "(?<=\\d{3}(?!999)...)foo" nil nil nil nil "123999foo" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1539 "\"123abcfoo\" =~ /(?<=\\d{3}...)(?\\s*)=(?>\\s*) # find
\\s*)=(?>\\s*) # find \\s*)=(?>\\s*) # find \\s*)=(?>\\s*) # find \\s*)=(?>\\s*) # find \\s*)=(?>\\s*) # find Z)+|A)*/" "((?>Z)+|A)*" nil nil nil nil "ZABCDEFG" nil 1 0 "ZA" (list "A" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1555 "\"ZABCDEFG\" =~ /((?>)+|A)*/" "((?>)+|A)*" nil nil nil nil "ZABCDEFG" nil 1 0 "" (list "" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1556 "\"abbab\" =~ /a*/" "a*" nil nil nil nil "abbab" nil 1 0 "a" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1557 "\"abcde\" =~ /^[a-\\d]/" "^[a-\\d]" nil nil nil nil "abcde" nil 1 0 "a" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1558 "\"-things\" =~ /^[a-\\d]/" "^[a-\\d]" nil nil nil nil "-things" nil 1 0 "-" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1559 "\"0digit\" =~ /^[a-\\d]/" "^[a-\\d]" nil nil nil nil "0digit" nil 1 0 "0" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1560 "\"bcdef\" =~ /^[a-\\d]/" "^[a-\\d]" nil nil nil nil "bcdef" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (push (list 1561 "\"abcde\" =~ /^[\\d-a]/" "^[\\d-a]" nil nil nil nil "abcde" nil 1 0 "a" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1562 "\"-things\" =~ /^[\\d-a]/" "^[\\d-a]" nil nil nil nil "-things" nil 1 0 "-" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1563 "\"0digit\" =~ /^[\\d-a]/" "^[\\d-a]" nil nil nil nil "0digit" nil 1 0 "0" (list nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil)) cl-ppcre-test::*testdata*) (push (list 1564 "\"bcdef\" =~ /^[\\d-a]/" "^[\\d-a]" nil nil nil nil "bcdef" nil 1 0 nil nil) cl-ppcre-test::*testdata*) (setq cl-ppcre-test::*testdata* (nreverse cl-ppcre-test::*testdata*))