1 /-- This set of tests check the DFA matching functionality of pcre_dfa_exec(),
2 excluding UTF and Unicode property support. The -dfa flag must be used with
3 pcretest when running it. --/
54 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
55 Matched, but offsets vector is too small to show all matches
56 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
57 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
58 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaa
59 3: aaaaaaaaaaaaaaaaaaaaaaaaaaa
60 4: aaaaaaaaaaaaaaaaaaaaaaaaaa
61 5: aaaaaaaaaaaaaaaaaaaaaaaaa
62 6: aaaaaaaaaaaaaaaaaaaaaaaa
63 7: aaaaaaaaaaaaaaaaaaaaaaa
64 8: aaaaaaaaaaaaaaaaaaaaaa
65 9: aaaaaaaaaaaaaaaaaaaaa
66 10: aaaaaaaaaaaaaaaaaaaa
67 11: aaaaaaaaaaaaaaaaaaa
68 12: aaaaaaaaaaaaaaaaaa
78 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\F
195 /(a.b(?s)c.d|x.y)p.q/
649 /^(a*\w|ab)=(a*\w|ab)/
659 /^([^()]|\((?1)*\))*$/
671 /^>abc>([^()]|\((?1)*\))*<xyz<$/
680 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9876
681 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9
684 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
687 /< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/x
705 /^(?(?=abc)\w{3}:|\d\d)$/
717 /^(?(?!abc)\d\d|\w{3}:)$/
939 Partial match: aaaa12345
943 0: aaaa4444444444444z
963 Partial match at offset 3: foob
978 adfadadaklhlkalkajhlkjahdfasdfasdfladsfjkj\P\Z
980 lkjhlkjhlkjhlkjhabbbbbbcdaefabbbbbbbefa\P\B\Z
981 Partial match: abbbbbbcdaefabbbbbbbefa
983 Partial match: cdabbbbbbbb
984 efabbbbbbbbbbbbbbbb\P\R\B\Z
985 Partial match: efabbbbbbbbbbbbbbbb
986 bbbbbbbbbbbbcdXyasdfadf\P\R\B\Z
989 /(a|b)/SF>testsavedregex
990 Compiled pattern written to testsavedregex
991 Study data written to testsavedregex
993 Compiled pattern (byte-inverted) loaded from testsavedregex
994 Study data loaded from testsavedregex
1002 /the quick brown fox/
1004 0: the quick brown fox
1007 What do you know about the quick brown fox?
1008 0: the quick brown fox
1009 What do you know about THE QUICK BROWN FOX?
1012 /The quick brown fox/i
1014 0: the quick brown fox
1016 0: The quick brown FOX
1017 What do you know about the quick brown fox?
1018 0: the quick brown fox
1019 What do you know about THE QUICK BROWN FOX?
1020 0: THE QUICK BROWN FOX
1022 /abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
1023 abcd\t\n\r\f\a\e9;\$\\?caxyz
1024 0: abcd\x09\x0a\x0d\x0c\x07\x1b9;$\?caxyz
1026 /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
1027 abxyzpqrrrabbxyyyypqAzz
1028 0: abxyzpqrrrabbxyyyypqAzz
1029 abxyzpqrrrabbxyyyypqAzz
1030 0: abxyzpqrrrabbxyyyypqAzz
1031 aabxyzpqrrrabbxyyyypqAzz
1032 0: aabxyzpqrrrabbxyyyypqAzz
1033 aaabxyzpqrrrabbxyyyypqAzz
1034 0: aaabxyzpqrrrabbxyyyypqAzz
1035 aaaabxyzpqrrrabbxyyyypqAzz
1036 0: aaaabxyzpqrrrabbxyyyypqAzz
1037 abcxyzpqrrrabbxyyyypqAzz
1038 0: abcxyzpqrrrabbxyyyypqAzz
1039 aabcxyzpqrrrabbxyyyypqAzz
1040 0: aabcxyzpqrrrabbxyyyypqAzz
1041 aaabcxyzpqrrrabbxyyyypAzz
1042 0: aaabcxyzpqrrrabbxyyyypAzz
1043 aaabcxyzpqrrrabbxyyyypqAzz
1044 0: aaabcxyzpqrrrabbxyyyypqAzz
1045 aaabcxyzpqrrrabbxyyyypqqAzz
1046 0: aaabcxyzpqrrrabbxyyyypqqAzz
1047 aaabcxyzpqrrrabbxyyyypqqqAzz
1048 0: aaabcxyzpqrrrabbxyyyypqqqAzz
1049 aaabcxyzpqrrrabbxyyyypqqqqAzz
1050 0: aaabcxyzpqrrrabbxyyyypqqqqAzz
1051 aaabcxyzpqrrrabbxyyyypqqqqqAzz
1052 0: aaabcxyzpqrrrabbxyyyypqqqqqAzz
1053 aaabcxyzpqrrrabbxyyyypqqqqqqAzz
1054 0: aaabcxyzpqrrrabbxyyyypqqqqqqAzz
1055 aaaabcxyzpqrrrabbxyyyypqAzz
1056 0: aaaabcxyzpqrrrabbxyyyypqAzz
1057 abxyzzpqrrrabbxyyyypqAzz
1058 0: abxyzzpqrrrabbxyyyypqAzz
1059 aabxyzzzpqrrrabbxyyyypqAzz
1060 0: aabxyzzzpqrrrabbxyyyypqAzz
1061 aaabxyzzzzpqrrrabbxyyyypqAzz
1062 0: aaabxyzzzzpqrrrabbxyyyypqAzz
1063 aaaabxyzzzzpqrrrabbxyyyypqAzz
1064 0: aaaabxyzzzzpqrrrabbxyyyypqAzz
1065 abcxyzzpqrrrabbxyyyypqAzz
1066 0: abcxyzzpqrrrabbxyyyypqAzz
1067 aabcxyzzzpqrrrabbxyyyypqAzz
1068 0: aabcxyzzzpqrrrabbxyyyypqAzz
1069 aaabcxyzzzzpqrrrabbxyyyypqAzz
1070 0: aaabcxyzzzzpqrrrabbxyyyypqAzz
1071 aaaabcxyzzzzpqrrrabbxyyyypqAzz
1072 0: aaaabcxyzzzzpqrrrabbxyyyypqAzz
1073 aaaabcxyzzzzpqrrrabbbxyyyypqAzz
1074 0: aaaabcxyzzzzpqrrrabbbxyyyypqAzz
1075 aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
1076 0: aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
1077 aaabcxyzpqrrrabbxyyyypABzz
1078 0: aaabcxyzpqrrrabbxyyyypABzz
1079 aaabcxyzpqrrrabbxyyyypABBzz
1080 0: aaabcxyzpqrrrabbxyyyypABBzz
1081 >>>aaabxyzpqrrrabbxyyyypqAzz
1082 0: aaabxyzpqrrrabbxyyyypqAzz
1083 >aaaabxyzpqrrrabbxyyyypqAzz
1084 0: aaaabxyzpqrrrabbxyyyypqAzz
1085 >>>>abcxyzpqrrrabbxyyyypqAzz
1086 0: abcxyzpqrrrabbxyyyypqAzz
1089 abxyzpqrrabbxyyyypqAzz
1091 abxyzpqrrrrabbxyyyypqAzz
1093 abxyzpqrrrabxyyyypqAzz
1095 aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz
1097 aaaabcxyzzzzpqrrrabbbxyyypqAzz
1099 aaabcxyzpqrrrabbxyyyypqqqqqqqAzz
1332 /^.+[0-9][0-9][0-9]$/
1346 /^.+?[0-9][0-9][0-9]$/
1360 /^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/
1361 abc!pqr=apquxz.ixr.zzz.ac.uk
1362 0: abc!pqr=apquxz.ixr.zzz.ac.uk
1365 !pqr=apquxz.ixr.zzz.ac.uk
1367 abc!=apquxz.ixr.zzz.ac.uk
1369 abc!pqr=apquxz:ixr.zzz.ac.uk
1371 abc!pqr=apquxz.ixr.zzz.ac.ukk
1375 Well, we need a colon: somewhere
1377 *** Fail if we don't
1408 /^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
1422 /^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
1423 1 IN SOA non-sp1 non-sp2(
1424 0: 1 IN SOA non-sp1 non-sp2(
1425 1 IN SOA non-sp1 non-sp2 (
1426 0: 1 IN SOA non-sp1 non-sp2 (
1429 1IN SOA non-sp1 non-sp2(
1432 /^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/
1450 /^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/
1470 /^(?=ab(de))(abd)(e)/
1474 /^(?!(ab)de|x)(abd)(f)/
1482 /^[\da-f](\.[\da-f])*$/i
1508 / ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/x
1518 /(?x) ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/
1540 /^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
1544 /^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
1548 /^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
1549 a+ Z0+\x08\n\x1d\x12
1550 0: a+ Z0+\x08\x0a\x1d\x12
1683 /^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]/
1684 From abcd Mon Sep 01 12:33:02 1997
1685 0: From abcd Mon Sep 01 12:33
1687 /^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/
1688 From abcd Mon Sep 01 12:33:02 1997
1689 0: From abcd Mon Sep 01 12:33
1690 From abcd Mon Sep 1 12:33:02 1997
1691 0: From abcd Mon Sep 1 12:33
1694 From abcd Sep 01 12:33:02 1997
1704 the quick brown\t fox
1708 foobar is foolish see?
1711 /(?:(?!foo)...|^.{0,2})bar(.*)/
1721 /^(\D*)(?=\d)(?!123)/
1729 /^1234(?# test newlines
1734 /^1234 #comment in extended re
1764 /^[ab]{1,3}(ab*|b)/O
1773 /^[ab]{1,3}?(ab*|b)/O
1782 /^[ab]{1,3}?(ab*?|b)/O
1791 /^[ab]{1,3}(ab*?|b)/O
1801 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1802 \) )* # optional leading comment
1804 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1805 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1807 " (?: # opening quote...
1808 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
1810 \\ [^\x80-\xff] # Escaped something (something != CR)
1811 )* " # closing quote
1813 (?: (?: [\040\t] | \(
1814 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1815 \) )* \. (?: [\040\t] | \(
1816 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1818 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1819 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1821 " (?: # opening quote...
1822 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
1824 \\ [^\x80-\xff] # Escaped something (something != CR)
1825 )* " # closing quote
1826 ) )* # further okay, if led by a period
1828 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1829 \) )* @ (?: [\040\t] | \(
1830 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1832 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1833 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1835 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1837 ) # initial subdomain
1840 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1841 \) )* \. # if led by a period...
1843 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1845 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1846 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1848 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1855 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1856 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1858 " (?: # opening quote...
1859 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
1861 \\ [^\x80-\xff] # Escaped something (something != CR)
1862 )* " # closing quote
1863 ) # one word, optionally followed by....
1865 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or...
1867 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1868 \) | # comments, or...
1870 " (?: # opening quote...
1871 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
1873 \\ [^\x80-\xff] # Escaped something (something != CR)
1874 )* " # closing quote
1878 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1880 (?: @ (?: [\040\t] | \(
1881 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1883 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1884 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1886 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1888 ) # initial subdomain
1891 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1892 \) )* \. # if led by a period...
1894 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1896 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1897 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1899 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1904 (?: (?: [\040\t] | \(
1905 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1906 \) )* , (?: [\040\t] | \(
1907 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1908 \) )* @ (?: [\040\t] | \(
1909 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1911 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1912 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1914 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1916 ) # initial subdomain
1919 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1920 \) )* \. # if led by a period...
1922 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1924 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1925 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1927 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1931 )* # further okay, if led by comma
1934 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1935 \) )* )? # optional route
1937 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1938 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1940 " (?: # opening quote...
1941 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
1943 \\ [^\x80-\xff] # Escaped something (something != CR)
1944 )* " # closing quote
1946 (?: (?: [\040\t] | \(
1947 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1948 \) )* \. (?: [\040\t] | \(
1949 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1951 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1952 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1954 " (?: # opening quote...
1955 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
1957 \\ [^\x80-\xff] # Escaped something (something != CR)
1958 )* " # closing quote
1959 ) )* # further okay, if led by a period
1961 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1962 \) )* @ (?: [\040\t] | \(
1963 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1965 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1966 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1968 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1970 ) # initial subdomain
1973 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1974 \) )* \. # if led by a period...
1976 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1978 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1979 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1981 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1987 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1988 \) )* > # trailing >
1991 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1992 \) )* # optional trailing comment
1994 Alan Other <user\@dom.ain>
1995 0: Alan Other <user@dom.ain>
2002 \"A. Other\" <user.1234\@dom.ain> (a comment)
2003 0: "A. Other" <user.1234@dom.ain> (a comment)
2004 1: "A. Other" <user.1234@dom.ain>
2005 2: "A. Other" <user.1234@dom.ain>
2006 A. Other <user.1234\@dom.ain> (a comment)
2007 0: Other <user.1234@dom.ain> (a comment)
2008 1: Other <user.1234@dom.ain>
2009 2: Other <user.1234@dom.ain>
2010 \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
2011 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay
2012 1: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re
2013 A missing angle <user\@some.where
2021 /[\040\t]* # Nab whitespace.
2024 [^\\\x80-\xff\n\015()] * # normal*
2026 (?: \\ [^\x80-\xff] |
2028 [^\\\x80-\xff\n\015()] * # normal*
2029 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2032 [^\\\x80-\xff\n\015()] * # normal*
2035 [\040\t]* )* # If comment found, allow more spaces.
2036 # optional leading comment
2039 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2040 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2044 [^\\\x80-\xff\n\015"] * # normal
2045 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
2049 [\040\t]* # Nab whitespace.
2052 [^\\\x80-\xff\n\015()] * # normal*
2054 (?: \\ [^\x80-\xff] |
2056 [^\\\x80-\xff\n\015()] * # normal*
2057 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2060 [^\\\x80-\xff\n\015()] * # normal*
2063 [\040\t]* )* # If comment found, allow more spaces.
2066 [\040\t]* # Nab whitespace.
2069 [^\\\x80-\xff\n\015()] * # normal*
2071 (?: \\ [^\x80-\xff] |
2073 [^\\\x80-\xff\n\015()] * # normal*
2074 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2077 [^\\\x80-\xff\n\015()] * # normal*
2080 [\040\t]* )* # If comment found, allow more spaces.
2082 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2083 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2087 [^\\\x80-\xff\n\015"] * # normal
2088 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
2092 [\040\t]* # Nab whitespace.
2095 [^\\\x80-\xff\n\015()] * # normal*
2097 (?: \\ [^\x80-\xff] |
2099 [^\\\x80-\xff\n\015()] * # normal*
2100 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2103 [^\\\x80-\xff\n\015()] * # normal*
2106 [\040\t]* )* # If comment found, allow more spaces.
2110 [\040\t]* # Nab whitespace.
2113 [^\\\x80-\xff\n\015()] * # normal*
2115 (?: \\ [^\x80-\xff] |
2117 [^\\\x80-\xff\n\015()] * # normal*
2118 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2121 [^\\\x80-\xff\n\015()] * # normal*
2124 [\040\t]* )* # If comment found, allow more spaces.
2126 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2127 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2130 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
2133 [\040\t]* # Nab whitespace.
2136 [^\\\x80-\xff\n\015()] * # normal*
2138 (?: \\ [^\x80-\xff] |
2140 [^\\\x80-\xff\n\015()] * # normal*
2141 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2144 [^\\\x80-\xff\n\015()] * # normal*
2147 [\040\t]* )* # If comment found, allow more spaces.
2148 # optional trailing comments
2151 [\040\t]* # Nab whitespace.
2154 [^\\\x80-\xff\n\015()] * # normal*
2156 (?: \\ [^\x80-\xff] |
2158 [^\\\x80-\xff\n\015()] * # normal*
2159 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2162 [^\\\x80-\xff\n\015()] * # normal*
2165 [\040\t]* )* # If comment found, allow more spaces.
2167 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2168 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2171 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
2174 [\040\t]* # Nab whitespace.
2177 [^\\\x80-\xff\n\015()] * # normal*
2179 (?: \\ [^\x80-\xff] |
2181 [^\\\x80-\xff\n\015()] * # normal*
2182 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2185 [^\\\x80-\xff\n\015()] * # normal*
2188 [\040\t]* )* # If comment found, allow more spaces.
2189 # optional trailing comments
2194 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2195 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2199 [^\\\x80-\xff\n\015"] * # normal
2200 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
2205 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # "normal" atoms and or spaces
2209 [^\\\x80-\xff\n\015()] * # normal*
2211 (?: \\ [^\x80-\xff] |
2213 [^\\\x80-\xff\n\015()] * # normal*
2214 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2217 [^\\\x80-\xff\n\015()] * # normal*
2222 [^\\\x80-\xff\n\015"] * # normal
2223 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
2225 ) # "special" comment or quoted string
2226 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # more "normal"
2229 [\040\t]* # Nab whitespace.
2232 [^\\\x80-\xff\n\015()] * # normal*
2234 (?: \\ [^\x80-\xff] |
2236 [^\\\x80-\xff\n\015()] * # normal*
2237 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2240 [^\\\x80-\xff\n\015()] * # normal*
2243 [\040\t]* )* # If comment found, allow more spaces.
2247 [\040\t]* # Nab whitespace.
2250 [^\\\x80-\xff\n\015()] * # normal*
2252 (?: \\ [^\x80-\xff] |
2254 [^\\\x80-\xff\n\015()] * # normal*
2255 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2258 [^\\\x80-\xff\n\015()] * # normal*
2261 [\040\t]* )* # If comment found, allow more spaces.
2263 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2264 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2267 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
2270 [\040\t]* # Nab whitespace.
2273 [^\\\x80-\xff\n\015()] * # normal*
2275 (?: \\ [^\x80-\xff] |
2277 [^\\\x80-\xff\n\015()] * # normal*
2278 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2281 [^\\\x80-\xff\n\015()] * # normal*
2284 [\040\t]* )* # If comment found, allow more spaces.
2285 # optional trailing comments
2288 [\040\t]* # Nab whitespace.
2291 [^\\\x80-\xff\n\015()] * # normal*
2293 (?: \\ [^\x80-\xff] |
2295 [^\\\x80-\xff\n\015()] * # normal*
2296 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2299 [^\\\x80-\xff\n\015()] * # normal*
2302 [\040\t]* )* # If comment found, allow more spaces.
2304 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2305 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2308 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
2311 [\040\t]* # Nab whitespace.
2314 [^\\\x80-\xff\n\015()] * # normal*
2316 (?: \\ [^\x80-\xff] |
2318 [^\\\x80-\xff\n\015()] * # normal*
2319 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2322 [^\\\x80-\xff\n\015()] * # normal*
2325 [\040\t]* )* # If comment found, allow more spaces.
2326 # optional trailing comments
2329 [\040\t]* # Nab whitespace.
2332 [^\\\x80-\xff\n\015()] * # normal*
2334 (?: \\ [^\x80-\xff] |
2336 [^\\\x80-\xff\n\015()] * # normal*
2337 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2340 [^\\\x80-\xff\n\015()] * # normal*
2343 [\040\t]* )* # If comment found, allow more spaces.
2345 [\040\t]* # Nab whitespace.
2348 [^\\\x80-\xff\n\015()] * # normal*
2350 (?: \\ [^\x80-\xff] |
2352 [^\\\x80-\xff\n\015()] * # normal*
2353 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2356 [^\\\x80-\xff\n\015()] * # normal*
2359 [\040\t]* )* # If comment found, allow more spaces.
2361 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2362 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2365 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
2368 [\040\t]* # Nab whitespace.
2371 [^\\\x80-\xff\n\015()] * # normal*
2373 (?: \\ [^\x80-\xff] |
2375 [^\\\x80-\xff\n\015()] * # normal*
2376 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2379 [^\\\x80-\xff\n\015()] * # normal*
2382 [\040\t]* )* # If comment found, allow more spaces.
2383 # optional trailing comments
2386 [\040\t]* # Nab whitespace.
2389 [^\\\x80-\xff\n\015()] * # normal*
2391 (?: \\ [^\x80-\xff] |
2393 [^\\\x80-\xff\n\015()] * # normal*
2394 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2397 [^\\\x80-\xff\n\015()] * # normal*
2400 [\040\t]* )* # If comment found, allow more spaces.
2402 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2403 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2406 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
2409 [\040\t]* # Nab whitespace.
2412 [^\\\x80-\xff\n\015()] * # normal*
2414 (?: \\ [^\x80-\xff] |
2416 [^\\\x80-\xff\n\015()] * # normal*
2417 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2420 [^\\\x80-\xff\n\015()] * # normal*
2423 [\040\t]* )* # If comment found, allow more spaces.
2424 # optional trailing comments
2426 )* # additional domains
2428 [\040\t]* # Nab whitespace.
2431 [^\\\x80-\xff\n\015()] * # normal*
2433 (?: \\ [^\x80-\xff] |
2435 [^\\\x80-\xff\n\015()] * # normal*
2436 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2439 [^\\\x80-\xff\n\015()] * # normal*
2442 [\040\t]* )* # If comment found, allow more spaces.
2443 # optional trailing comments
2446 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2447 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2451 [^\\\x80-\xff\n\015"] * # normal
2452 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
2456 [\040\t]* # Nab whitespace.
2459 [^\\\x80-\xff\n\015()] * # normal*
2461 (?: \\ [^\x80-\xff] |
2463 [^\\\x80-\xff\n\015()] * # normal*
2464 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2467 [^\\\x80-\xff\n\015()] * # normal*
2470 [\040\t]* )* # If comment found, allow more spaces.
2473 [\040\t]* # Nab whitespace.
2476 [^\\\x80-\xff\n\015()] * # normal*
2478 (?: \\ [^\x80-\xff] |
2480 [^\\\x80-\xff\n\015()] * # normal*
2481 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2484 [^\\\x80-\xff\n\015()] * # normal*
2487 [\040\t]* )* # If comment found, allow more spaces.
2489 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2490 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2494 [^\\\x80-\xff\n\015"] * # normal
2495 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
2499 [\040\t]* # Nab whitespace.
2502 [^\\\x80-\xff\n\015()] * # normal*
2504 (?: \\ [^\x80-\xff] |
2506 [^\\\x80-\xff\n\015()] * # normal*
2507 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2510 [^\\\x80-\xff\n\015()] * # normal*
2513 [\040\t]* )* # If comment found, allow more spaces.
2517 [\040\t]* # Nab whitespace.
2520 [^\\\x80-\xff\n\015()] * # normal*
2522 (?: \\ [^\x80-\xff] |
2524 [^\\\x80-\xff\n\015()] * # normal*
2525 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2528 [^\\\x80-\xff\n\015()] * # normal*
2531 [\040\t]* )* # If comment found, allow more spaces.
2533 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2534 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2537 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
2540 [\040\t]* # Nab whitespace.
2543 [^\\\x80-\xff\n\015()] * # normal*
2545 (?: \\ [^\x80-\xff] |
2547 [^\\\x80-\xff\n\015()] * # normal*
2548 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2551 [^\\\x80-\xff\n\015()] * # normal*
2554 [\040\t]* )* # If comment found, allow more spaces.
2555 # optional trailing comments
2558 [\040\t]* # Nab whitespace.
2561 [^\\\x80-\xff\n\015()] * # normal*
2563 (?: \\ [^\x80-\xff] |
2565 [^\\\x80-\xff\n\015()] * # normal*
2566 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2569 [^\\\x80-\xff\n\015()] * # normal*
2572 [\040\t]* )* # If comment found, allow more spaces.
2574 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2575 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2578 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
2581 [\040\t]* # Nab whitespace.
2584 [^\\\x80-\xff\n\015()] * # normal*
2586 (?: \\ [^\x80-\xff] |
2588 [^\\\x80-\xff\n\015()] * # normal*
2589 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2592 [^\\\x80-\xff\n\015()] * # normal*
2595 [\040\t]* )* # If comment found, allow more spaces.
2596 # optional trailing comments
2603 Alan Other <user\@dom.ain>
2604 0: Alan Other <user@dom.ain>
2611 \"A. Other\" <user.1234\@dom.ain> (a comment)
2612 0: "A. Other" <user.1234@dom.ain>
2613 A. Other <user.1234\@dom.ain> (a comment)
2614 0: Other <user.1234@dom.ain>
2615 \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
2616 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay
2617 1: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re
2618 A missing angle <user\@some.where
2626 /abc\0def\00pqr\000xyz\0000AB/
2627 abc\0def\00pqr\000xyz\0000AB
2628 0: abc\x00def\x00pqr\x00xyz\x000AB
2629 abc456 abc\0def\00pqr\000xyz\0000ABCDE
2630 0: abc\x00def\x00pqr\x00xyz\x000AB
2632 /abc\x0def\x00pqr\x000xyz\x0000AB/
2633 abc\x0def\x00pqr\x000xyz\x0000AB
2634 0: abc\x0def\x00pqr\x000xyz\x0000AB
2635 abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE
2636 0: abc\x0def\x00pqr\x000xyz\x0000AB
2697 /([^.]*)\.([^:]*):[T ]+(.*)/
2698 track1.title:TBlah blah blah
2699 0: track1.title:TBlah blah blah
2701 /([^.]*)\.([^:]*):[T ]+(.*)/i
2702 track1.title:TBlah blah blah
2703 0: track1.title:TBlah blah blah
2705 /([^.]*)\.([^:]*):[t ]+(.*)/i
2706 track1.title:TBlah blah blah
2707 0: track1.title:TBlah blah blah
2919 /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
2951 /^([^a])([^\b])([^c]*)([^d]{3,4})/
3060 /\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/
3061 \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
3062 0: \x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff
3064 /P[^*]TAIRE[^*]{1,6}?LL/
3065 xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
3068 /P[^*]TAIRE[^*]{1,}?LL/
3069 xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
3080 /(\.\d\d((?=0)|\d(?=\d)))/
3096 Food is on the foo table
3100 The food is under the bar in the barn.
3101 0: food is under the bar in the bar
3102 1: food is under the bar
3105 The food is under the bar in the barn.
3106 0: food is under the bar in the bar
3107 1: food is under the bar
3110 I have 2 numbers: 53147
3111 Matched, but offsets vector is too small to show all matches
3112 0: I have 2 numbers: 53147
3113 1: I have 2 numbers: 5314
3114 2: I have 2 numbers: 531
3115 3: I have 2 numbers: 53
3116 4: I have 2 numbers: 5
3117 5: I have 2 numbers:
3118 6: I have 2 numbers:
3136 I have 2 numbers: 53147
3137 0: I have 2 numbers: 53147
3141 I have 2 numbers: 53147
3142 Matched, but offsets vector is too small to show all matches
3143 0: I have 2 numbers: 53147
3144 1: I have 2 numbers: 5314
3145 2: I have 2 numbers: 531
3146 3: I have 2 numbers: 53
3147 4: I have 2 numbers: 5
3148 5: I have 2 numbers:
3149 6: I have 2 numbers:
3167 I have 2 numbers: 53147
3168 0: I have 2 numbers: 53147
3172 I have 2 numbers: 53147
3173 0: I have 2 numbers: 53147
3176 I have 2 numbers: 53147
3177 0: I have 2 numbers: 53147
3180 I have 2 numbers: 53147
3181 0: I have 2 numbers: 53147
3184 I have 2 numbers: 53147
3185 0: I have 2 numbers: 53147
3193 /^(\D*)(?=\d)(?!123)/
3243 /\d\d\/\d\d\/\d\d\d\d/
3247 /word (?:[a-zA-Z0-9]+ ){0,10}otherword/
3248 word cat dog elephant mussel cow horse canary baboon snake shark otherword
3249 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
3250 word cat dog elephant mussel cow horse canary baboon snake shark
3253 /word (?:[a-zA-Z0-9]+ ){0,300}otherword/
3254 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
3394 0: borfle\x0abib.gif
3398 0: borfle\x0abib.gif
3410 0: borfle\x0abib.gif\x0ano
3414 0: borfle\x0abib.gif\x0ano
3415 1: borfle\x0abib.gif
3419 borfle\nbib.gif\nno\n
3423 borfle\nbib.gif\nno\n
3427 borfle\nbib.gif\nno\n
3428 0: borfle\x0abib.gif\x0ano\x0a
3429 1: borfle\x0abib.gif\x0ano
3432 borfle\nbib.gif\nno\n
3433 0: borfle\x0abib.gif\x0ano\x0a
3434 1: borfle\x0abib.gif\x0ano
3435 2: borfle\x0abib.gif
3520 /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
3524 /^\d\d\d\d\d\d\d\d\d\d\d\d/
3528 /^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
3544 /^[abcdefghijklmnopqrstuvwxy0123456789]/
3597 the \"quick\" brown fox
3599 \"the \\\"quick\\\" brown fox\"
3600 0: "the \"quick\" brown fox"
3633 /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/is
3634 <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>
3635 0: <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>
3758 /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
3762 /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
3763 0: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
3765 /(?>(\.\d\d[1-9]?))\d+/
3775 /^((?>\w+)|(?>\s+))*$/
3776 now is the time for all good men to come to the aid of the party
3777 0: now is the time for all good men to come to the aid of the party
3780 this is not a line with only words and spaces!
3834 /((?>[^()]+)|\([^()]*\))+/
3843 /\(((?>[^()]+)|\([^()]+\))+\)/
3850 ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3877 /(a b(?x)c d (?-x)e f)/
3943 /(?s-i:more.*than).*million/i
3945 0: more than million
3947 0: more than MILLION
3948 more \n than Million
3949 0: more \x0a than Million
3954 more \n than \n million
3957 /(?:(?s-i)more.*than).*million/i
3959 0: more than million
3961 0: more than MILLION
3962 more \n than Million
3963 0: more \x0a than Million
3968 more \n than \n million
4001 /(?<=a(?i)b)(\w\w)c/
4015 /^(?(?=abc)\w{3}:|\d\d)$/
4027 /^(?(?!abc)\d\d|\w{3}:)$/
4039 /(?(?<=foo)bar|cat)/
4053 /(?(?<!foo)cat|bar)/
4239 /(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /x
4249 /(?i:saturday|sunday)/
4285 /^([ab](?i)[cd]|[ef])/
4305 /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
4335 /(?<=(?<!foo)bar)baz/
4349 /The following tests are taken from the Perl 5.005 test suite; some of them/
4350 /are compatible with 5.004, but I'd rather not have to sort them out./
4851 /[a-zA-Z_][a-zA-Z0-9_]*/
4855 /^a(bc+|b[eh])g|.h$/
4859 /(bc+d$|ef*g.|h?i(j|k))/
4873 /((((((((((a))))))))))/
4877 /(((((((((a)))))))))/
4881 /multiple words of text/
4890 multiple words, yeah
5297 /[a-zA-Z_][a-zA-Z0-9_]*/i
5301 /^a(bc+|b[eh])g|.h$/i
5305 /(bc+d$|ef*g.|h?i(j|k))/i
5321 /((((((((((a))))))))))/i
5325 /(((((((((a)))))))))/i
5329 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
5333 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
5337 /multiple words of text/i
5346 MULTIPLE WORDS, YEAH
5416 /a(?:b|c|d){4,5}(.)/
5421 /a(?:b|c|d){4,5}?(.)/
5432 /a(?:b|c|d){6,7}(.)/
5436 /a(?:b|c|d){6,7}?(.)/
5440 /a(?:b|c|d){5,6}(.)/
5445 /a(?:b|c|d){5,6}?(.)/
5450 /a(?:b|c|d){5,7}(.)/
5455 /a(?:b|c|d){5,7}?(.)/
5460 /a(?:b|(c|e){1,2}?|d)+?(.)/
5476 /(?:(f)(o)(o)|(b)(a)(r))*/
5686 /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
5690 /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
5691 caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
5692 0: caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
5707 /^a (?#xxx) (?#yyy) {3}c/x
5741 /((?s)^a(.))((?m)^b$)/
5873 /((?>[^()]+)|\([^()]*\))+/
5906 /(?>.*)(?<=(abcd|wxyz))/
5913 a rather long string that doesn't end with one of them
5916 /word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
5917 word cat dog elephant mussel cow horse canary baboon snake shark otherword
5918 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
5919 word cat dog elephant mussel cow horse canary baboon snake shark
5922 /word (?>[a-zA-Z0-9]+ ){0,30}otherword/
5923 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
5926 /(?<=\d{3}(?!999))foo/
5936 /(?<=(?!...999)\d{3})foo/
5946 /(?<=\d{3}(?!999)...)foo/
5956 /(?<=\d{3}...)(?<!999)foo/
6016 > \x09\x0a\x0c\x0d\x0b<
6017 0: \x09\x0a\x0c\x0d\x0b
6020 > \x09\x0a\x0c\x0d\x0b<
6024 > \x09\x0a\x0c\x0d\x0b<
6025 0: \x09\x0a\x0c\x0d\x0b
6028 > \x09\x0a\x0c\x0d\x0b<
6029 0: \x09\x0a\x0c\x0d\x0b
6062 abc#not comment\n literal
6063 0: abc#not comment\x0a literal
6068 abc#not comment\n literal
6069 0: abc#not comment\x0a literal
6073 literal\E #more comment
6075 abc#not comment\n literal
6076 0: abc#not comment\x0a literal
6080 literal\E #more comment/x
6081 abc#not comment\n literal
6082 0: abc#not comment\x0a literal
6119 /((?x)x y z | a b c)/
6176 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6179 /(?i)reg(?:ul(?:[aä]|ae)r|ex)/
6189 /Åæåä[à -ÿÀ-ß]+/
6191 0: \xc5\xe6\xe5\xe4\xe0
6193 0: \xc5\xe6\xe5\xe4\xff
6195 0: \xc5\xe6\xe5\xe4\xc0
6197 0: \xc5\xe6\xe5\xe4\xdf
6205 Error -17 (backreference condition or recursion test not supported for DFA matching)
6213 /abc/SS>testsavedregex
6214 Compiled pattern written to testsavedregex
6216 Compiled pattern loaded from testsavedregex
6225 /abc/FSS>testsavedregex
6226 Compiled pattern written to testsavedregex
6228 Compiled pattern (byte-inverted) loaded from testsavedregex
6237 /(a|b)/S>testsavedregex
6238 Compiled pattern written to testsavedregex
6239 Study data written to testsavedregex
6241 Compiled pattern loaded from testsavedregex
6242 Study data loaded from testsavedregex
6250 /(a|b)/SF>testsavedregex
6251 Compiled pattern written to testsavedregex
6252 Study data written to testsavedregex
6254 Compiled pattern (byte-inverted) loaded from testsavedregex
6255 Study data loaded from testsavedregex
6264 this is a line\nbreak
6266 line one\nthis is a line\nbreak in the second line
6270 this is a line\nbreak
6274 line one\nthis is a line\nbreak in the second line
6278 this is a line\nbreak
6282 line one\nthis is a line\nbreak in the second line
6333 /Content-Type\x3A[^\r\n]{6,}/
6334 Content-Type:xxxxxyyy
6335 0: Content-Type:xxxxxyyy
6337 /Content-Type\x3A[^\r\n]{6,}z/
6338 Content-Type:xxxxxyyyz
6339 0: Content-Type:xxxxxyyyz
6341 /Content-Type\x3A[^a]{6,}/
6343 0: Content-Type:xxxyyy
6345 /Content-Type\x3A[^a]{6,}z/
6346 Content-Type:xxxyyyz
6347 0: Content-Type:xxxyyyz
6386 xyzabc\r\npqr\<crlf>
6500 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6502 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6503 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6506 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6508 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6509 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6512 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6514 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6515 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6534 abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
6544 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
6553 /^a\Rb/<bsr_unicode>
6571 /^a\R*b/<bsr_unicode>
6589 0: a\x0a\x0d\x85\x0cb
6591 /^a\R+b/<bsr_unicode>
6607 0: a\x0a\x0d\x85\x0cb
6613 /^a\R{1,3}b/<bsr_unicode>
6621 0: a\x0d\x0a\x0d\x0ab
6623 0: a\x0d\x0a\x0d\x0a\x0d\x0ab
6625 0: a\x0a\x0d\x0a\x0db
6627 0: a\x0a\x0a\x0d\x0ab
6635 /^a[\R]b/<bsr_unicode>
6704 /(?m)^$|^\r\n/<any>g+
6725 /(x)(?|(abc)|(xyz))(x)/
6731 /(x)(?|(abc)(pqr)|(xyz))(x)/
6737 /(?|(abc)|(xyz))(?1)/
6758 \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a
6759 0: \x09 \xa0X\x0a\x0b\x0c\x0d
6760 \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a
6761 0: \x09 \xa0\x0a\x0b\x0c\x0d
6762 \x09\x20\xa0\x0a\x0b\x0c
6763 0: \x09 \xa0\x0a\x0b\x0c
6766 \x09\x20\xa0\x0a\x0b
6792 /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/
6793 >XY\x0aZ\x0aA\x0bNN\x0c
6794 0: XY\x0aZ\x0aA\x0bNN\x0c
6795 >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
6796 0: \x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
6814 /a\Rb/I<bsr_anycrlf>
6815 Capturing subpattern count = 0
6816 Options: bsr_anycrlf
6832 /a\Rb/I<bsr_unicode>
6833 Capturing subpattern count = 0
6834 Options: bsr_unicode
6849 a\x85b\<bsr_anycrlf>
6851 a\x0bb\<bsr_anycrlf>
6854 /a\R?b/I<bsr_anycrlf>
6855 Capturing subpattern count = 0
6856 Options: bsr_anycrlf
6872 /a\R?b/I<bsr_unicode>
6873 Capturing subpattern count = 0
6874 Options: bsr_unicode
6889 a\x85b\<bsr_anycrlf>
6891 a\x0bb\<bsr_anycrlf>
6894 /a\R{2,4}b/I<bsr_anycrlf>
6895 Capturing subpattern count = 0
6896 Options: bsr_anycrlf
6904 0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
6912 /a\R{2,4}b/I<bsr_unicode>
6913 Capturing subpattern count = 0
6914 Options: bsr_unicode
6922 0: a\x0d\x0a\x0a\x0d\x0db
6931 a\x85\85b\<bsr_anycrlf>
6933 a\x0b\0bb\<bsr_anycrlf>
7045 /(*NO_START_OPT)xyz/C
7075 /^"((?(?=[a])[^"])|b)*"$/C
7080 +2 ^^ ((?(?=[a])[^"])|b)*
7082 +3 ^^ (?(?=[a])[^"])
7091 +3 ^ ^ (?(?=[a])[^"])
7097 +3 ^ ^ (?(?=[a])[^"])
7110 Partial match: 123999
7162 Partial match: the cat
7184 Error -16 (item unsupported for DFA matching)
7190 Partial match at offset 6: abc12
7192 Partial match at offset 6: abc12
7198 Partial match at offset 3: +ab
7200 Partial match at offset 3: +ab
7210 Capturing subpattern count = 1
7216 the quick xyz brown fox
7220 \Ythe quick xyz brown fox
7224 thejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
7226 \Ythejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
7230 Capturing subpattern count = 1
7234 Subject length lower bound = 3
7235 Starting chars: a d x
7238 the quick xyz brown fox
7242 \Ythe quick xyz brown fox
7246 thejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
7248 \Ythejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
7286 Partial match: abcde
7288 /(?:(?1)|B)(A(*F)|C)/
7298 /^(?:(?1)|B)(A(*F)|C)/
7314 Error -16 (item unsupported for DFA matching)
7320 Error -16 (item unsupported for DFA matching)
7324 Error -16 (item unsupported for DFA matching)
7328 Error -16 (item unsupported for DFA matching)
7332 Error -16 (item unsupported for DFA matching)
7336 Error -16 (item unsupported for DFA matching)
7340 Partial match at offset 3: abc
7406 Error -24 (bad offset value)
7408 Error -24 (bad offset value)
7514 /^(?=(?1))?[az]([abc])d/
7532 Error -26 (nested recursion at the same subject position)
7548 Error -17 (backreference condition or recursion test not supported for DFA matching)
7550 /(?(R)a*(?1)|((?R))b)/
7552 Error -26 (nested recursion at the same subject position)
7556 Matched, but offsets vector is too small to show all matches
7586 Partial match: \x0d\x0d
7588 Partial match: \x0d\x0d
7590 Partial match: \x0d\x0d\x0d
7592 Partial match: \x0d\x0d\x0d
7604 Partial match: \x0d\x0d
7606 Partial match: \x0d\x0d
7608 Partial match: \x0d\x0d\x0d
7610 Partial match: \x0d\x0d\x0d
7632 Partial match: \x0d\x0a
7634 Partial match: \x0d\x0a
7640 Partial match: a\x0d
7642 Partial match: a\x0d
7646 Partial match: a\x0d
7648 Partial match: a\x0d
7654 Partial match: a\x0d
7660 Partial match: a\x0d
7676 Partial match: \x0d\x0d
7680 Partial match: \x0d\x0d\x0d
7690 Partial match: \x0d\x0d
7695 Partial match: \x0d\x0d\x0d
7697 /-- Test simple validity check for restarts --/
7701 Error -30 (invalid data in workspace for DFA restart)
7703 /<H((?(?!<H|F>)(.)|(?R))++)*F>/
7704 text <H more text <H texting more hexA0-"\xA0" hex above 7F-"\xBC" F> text xxxxx <H text F> text F> text2 <H text sample F> more text.
7705 0: <H more text <H texting more hexA0-"\xa0" hex above 7F-"\xbc" F> text xxxxx <H text F> text F>
7707 /^(?>.{4})abc|^\w\w.xabcd/
7715 /^(.{4}){2}+abc|^\w\w.x\w\w\w\wabcd/
7725 Matched, but offsets vector is too small to show all matches
7727 /-- These tests show up auto-possessification --/
7780 '\A(?:[^\"]++|\"(?:[^\"]*+|\"\")*+\")++'
7781 NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
7782 0: NON QUOTED "QUOT""ED" AFTER
7784 '\A(?:[^\"]++|\"(?:[^\"]++|\"\")*+\")++'
7785 NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
7786 0: NON QUOTED "QUOT""ED" AFTER
7794 /-- End of testinput8 --/