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. --/
25 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
26 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\F
346 /^(a*\w|ab)=(a*\w|ab)/
352 /^([^()]|\((?1)*\))*$/
359 /^>abc>([^()]|\((?1)*\))*<xyz<$/
365 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9876
367 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
369 /< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/x
379 /^(?(?=abc)\w{3}:|\d\d)$/
386 /^(?(?!abc)\d\d|\w{3}:)$/
501 adfadadaklhlkalkajhlkjahdfasdfasdfladsfjkj\P\Z
502 lkjhlkjhlkjhlkjhabbbbbbcdaefabbbbbbbefa\P\B\Z
504 efabbbbbbbbbbbbbbbb\P\R\B\Z
505 bbbbbbbbbbbbcdXyasdfadf\P\R\B\Z
507 /(a|b)/SF>testsavedregex
513 /the quick brown fox/
516 What do you know about the quick brown fox?
517 What do you know about THE QUICK BROWN FOX?
519 /The quick brown fox/i
522 What do you know about the quick brown fox?
523 What do you know about THE QUICK BROWN FOX?
525 /abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
526 abcd\t\n\r\f\a\e9;\$\\?caxyz
528 /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
529 abxyzpqrrrabbxyyyypqAzz
530 abxyzpqrrrabbxyyyypqAzz
531 aabxyzpqrrrabbxyyyypqAzz
532 aaabxyzpqrrrabbxyyyypqAzz
533 aaaabxyzpqrrrabbxyyyypqAzz
534 abcxyzpqrrrabbxyyyypqAzz
535 aabcxyzpqrrrabbxyyyypqAzz
536 aaabcxyzpqrrrabbxyyyypAzz
537 aaabcxyzpqrrrabbxyyyypqAzz
538 aaabcxyzpqrrrabbxyyyypqqAzz
539 aaabcxyzpqrrrabbxyyyypqqqAzz
540 aaabcxyzpqrrrabbxyyyypqqqqAzz
541 aaabcxyzpqrrrabbxyyyypqqqqqAzz
542 aaabcxyzpqrrrabbxyyyypqqqqqqAzz
543 aaaabcxyzpqrrrabbxyyyypqAzz
544 abxyzzpqrrrabbxyyyypqAzz
545 aabxyzzzpqrrrabbxyyyypqAzz
546 aaabxyzzzzpqrrrabbxyyyypqAzz
547 aaaabxyzzzzpqrrrabbxyyyypqAzz
548 abcxyzzpqrrrabbxyyyypqAzz
549 aabcxyzzzpqrrrabbxyyyypqAzz
550 aaabcxyzzzzpqrrrabbxyyyypqAzz
551 aaaabcxyzzzzpqrrrabbxyyyypqAzz
552 aaaabcxyzzzzpqrrrabbbxyyyypqAzz
553 aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
554 aaabcxyzpqrrrabbxyyyypABzz
555 aaabcxyzpqrrrabbxyyyypABBzz
556 >>>aaabxyzpqrrrabbxyyyypqAzz
557 >aaaabxyzpqrrrabbxyyyypqAzz
558 >>>>abcxyzpqrrrabbxyyyypqAzz
560 abxyzpqrrabbxyyyypqAzz
561 abxyzpqrrrrabbxyyyypqAzz
562 abxyzpqrrrabxyyyypqAzz
563 aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz
564 aaaabcxyzzzzpqrrrabbbxyyypqAzz
565 aaabcxyzpqrrrabbxyyyypqqqqqqqAzz
698 /^.+[0-9][0-9][0-9]$/
706 /^.+?[0-9][0-9][0-9]$/
714 /^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/
715 abc!pqr=apquxz.ixr.zzz.ac.uk
717 !pqr=apquxz.ixr.zzz.ac.uk
718 abc!=apquxz.ixr.zzz.ac.uk
719 abc!pqr=apquxz:ixr.zzz.ac.uk
720 abc!pqr=apquxz.ixr.zzz.ac.ukk
723 Well, we need a colon: somewhere
741 /^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
749 /^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
750 1 IN SOA non-sp1 non-sp2(
751 1 IN SOA non-sp1 non-sp2 (
753 1IN SOA non-sp1 non-sp2(
755 /^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/
765 /^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/
776 /^(?=ab(de))(abd)(e)/
779 /^(?!(ab)de|x)(abd)(f)/
785 /^[\da-f](\.[\da-f])*$/i
801 / ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/x
807 /(?x) ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/
820 /^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
823 /^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
826 /^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
888 /^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]/
889 From abcd Mon Sep 01 12:33:02 1997
891 /^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/
892 From abcd Mon Sep 01 12:33:02 1997
893 From abcd Mon Sep 1 12:33:02 1997
895 From abcd Sep 01 12:33:02 1997
902 the quick brown\t fox
905 foobar is foolish see?
907 /(?:(?!foo)...|^.{0,2})bar(.*)/
913 /^(\D*)(?=\d)(?!123)/
918 /^1234(?# test newlines
922 /^1234 #comment in extended re
946 /^[ab]{1,3}?(ab*|b)/O
949 /^[ab]{1,3}?(ab*?|b)/O
952 /^[ab]{1,3}(ab*?|b)/O
956 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
957 \) )* # optional leading comment
959 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
960 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
962 " (?: # opening quote...
963 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
965 \\ [^\x80-\xff] # Escaped something (something != CR)
968 (?: (?: [\040\t] | \(
969 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
970 \) )* \. (?: [\040\t] | \(
971 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
973 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
974 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
976 " (?: # opening quote...
977 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
979 \\ [^\x80-\xff] # Escaped something (something != CR)
981 ) )* # further okay, if led by a period
983 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
984 \) )* @ (?: [\040\t] | \(
985 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
987 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
988 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
990 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
992 ) # initial subdomain
995 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
996 \) )* \. # if led by a period...
998 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1000 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1001 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1003 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1010 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1011 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1013 " (?: # opening quote...
1014 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
1016 \\ [^\x80-\xff] # Escaped something (something != CR)
1017 )* " # closing quote
1018 ) # one word, optionally followed by....
1020 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or...
1022 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1023 \) | # comments, or...
1025 " (?: # opening quote...
1026 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
1028 \\ [^\x80-\xff] # Escaped something (something != CR)
1029 )* " # closing quote
1033 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1035 (?: @ (?: [\040\t] | \(
1036 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1038 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1039 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1041 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1043 ) # initial subdomain
1046 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1047 \) )* \. # if led by a period...
1049 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1051 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1052 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1054 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1059 (?: (?: [\040\t] | \(
1060 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1061 \) )* , (?: [\040\t] | \(
1062 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1063 \) )* @ (?: [\040\t] | \(
1064 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1066 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1067 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1069 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1071 ) # initial subdomain
1074 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1075 \) )* \. # if led by a period...
1077 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1079 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1080 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1082 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1086 )* # further okay, if led by comma
1089 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1090 \) )* )? # optional route
1092 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1093 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1095 " (?: # opening quote...
1096 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
1098 \\ [^\x80-\xff] # Escaped something (something != CR)
1099 )* " # closing quote
1101 (?: (?: [\040\t] | \(
1102 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1103 \) )* \. (?: [\040\t] | \(
1104 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1106 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1107 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1109 " (?: # opening quote...
1110 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
1112 \\ [^\x80-\xff] # Escaped something (something != CR)
1113 )* " # closing quote
1114 ) )* # further okay, if led by a period
1116 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1117 \) )* @ (?: [\040\t] | \(
1118 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1120 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1121 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1123 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1125 ) # initial subdomain
1128 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1129 \) )* \. # if led by a period...
1131 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1133 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1134 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1136 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1142 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1143 \) )* > # trailing >
1146 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1147 \) )* # optional trailing comment
1149 Alan Other <user\@dom.ain>
1152 \"A. Other\" <user.1234\@dom.ain> (a comment)
1153 A. Other <user.1234\@dom.ain> (a comment)
1154 \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
1155 A missing angle <user\@some.where
1159 /[\040\t]* # Nab whitespace.
1162 [^\\\x80-\xff\n\015()] * # normal*
1164 (?: \\ [^\x80-\xff] |
1166 [^\\\x80-\xff\n\015()] * # normal*
1167 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1170 [^\\\x80-\xff\n\015()] * # normal*
1173 [\040\t]* )* # If comment found, allow more spaces.
1174 # optional leading comment
1177 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1178 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1182 [^\\\x80-\xff\n\015"] * # normal
1183 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
1187 [\040\t]* # Nab whitespace.
1190 [^\\\x80-\xff\n\015()] * # normal*
1192 (?: \\ [^\x80-\xff] |
1194 [^\\\x80-\xff\n\015()] * # normal*
1195 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1198 [^\\\x80-\xff\n\015()] * # normal*
1201 [\040\t]* )* # If comment found, allow more spaces.
1204 [\040\t]* # Nab whitespace.
1207 [^\\\x80-\xff\n\015()] * # normal*
1209 (?: \\ [^\x80-\xff] |
1211 [^\\\x80-\xff\n\015()] * # normal*
1212 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1215 [^\\\x80-\xff\n\015()] * # normal*
1218 [\040\t]* )* # If comment found, allow more spaces.
1220 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1221 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1225 [^\\\x80-\xff\n\015"] * # normal
1226 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
1230 [\040\t]* # Nab whitespace.
1233 [^\\\x80-\xff\n\015()] * # normal*
1235 (?: \\ [^\x80-\xff] |
1237 [^\\\x80-\xff\n\015()] * # normal*
1238 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1241 [^\\\x80-\xff\n\015()] * # normal*
1244 [\040\t]* )* # If comment found, allow more spaces.
1248 [\040\t]* # Nab whitespace.
1251 [^\\\x80-\xff\n\015()] * # normal*
1253 (?: \\ [^\x80-\xff] |
1255 [^\\\x80-\xff\n\015()] * # normal*
1256 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1259 [^\\\x80-\xff\n\015()] * # normal*
1262 [\040\t]* )* # If comment found, allow more spaces.
1264 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1265 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1268 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1271 [\040\t]* # Nab whitespace.
1274 [^\\\x80-\xff\n\015()] * # normal*
1276 (?: \\ [^\x80-\xff] |
1278 [^\\\x80-\xff\n\015()] * # normal*
1279 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1282 [^\\\x80-\xff\n\015()] * # normal*
1285 [\040\t]* )* # If comment found, allow more spaces.
1286 # optional trailing comments
1289 [\040\t]* # Nab whitespace.
1292 [^\\\x80-\xff\n\015()] * # normal*
1294 (?: \\ [^\x80-\xff] |
1296 [^\\\x80-\xff\n\015()] * # normal*
1297 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1300 [^\\\x80-\xff\n\015()] * # normal*
1303 [\040\t]* )* # If comment found, allow more spaces.
1305 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1306 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1309 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1312 [\040\t]* # Nab whitespace.
1315 [^\\\x80-\xff\n\015()] * # normal*
1317 (?: \\ [^\x80-\xff] |
1319 [^\\\x80-\xff\n\015()] * # normal*
1320 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1323 [^\\\x80-\xff\n\015()] * # normal*
1326 [\040\t]* )* # If comment found, allow more spaces.
1327 # optional trailing comments
1332 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1333 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1337 [^\\\x80-\xff\n\015"] * # normal
1338 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
1343 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # "normal" atoms and or spaces
1347 [^\\\x80-\xff\n\015()] * # normal*
1349 (?: \\ [^\x80-\xff] |
1351 [^\\\x80-\xff\n\015()] * # normal*
1352 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1355 [^\\\x80-\xff\n\015()] * # normal*
1360 [^\\\x80-\xff\n\015"] * # normal
1361 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
1363 ) # "special" comment or quoted string
1364 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # more "normal"
1367 [\040\t]* # Nab whitespace.
1370 [^\\\x80-\xff\n\015()] * # normal*
1372 (?: \\ [^\x80-\xff] |
1374 [^\\\x80-\xff\n\015()] * # normal*
1375 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1378 [^\\\x80-\xff\n\015()] * # normal*
1381 [\040\t]* )* # If comment found, allow more spaces.
1385 [\040\t]* # Nab whitespace.
1388 [^\\\x80-\xff\n\015()] * # normal*
1390 (?: \\ [^\x80-\xff] |
1392 [^\\\x80-\xff\n\015()] * # normal*
1393 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1396 [^\\\x80-\xff\n\015()] * # normal*
1399 [\040\t]* )* # If comment found, allow more spaces.
1401 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1402 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1405 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1408 [\040\t]* # Nab whitespace.
1411 [^\\\x80-\xff\n\015()] * # normal*
1413 (?: \\ [^\x80-\xff] |
1415 [^\\\x80-\xff\n\015()] * # normal*
1416 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1419 [^\\\x80-\xff\n\015()] * # normal*
1422 [\040\t]* )* # If comment found, allow more spaces.
1423 # optional trailing comments
1426 [\040\t]* # Nab whitespace.
1429 [^\\\x80-\xff\n\015()] * # normal*
1431 (?: \\ [^\x80-\xff] |
1433 [^\\\x80-\xff\n\015()] * # normal*
1434 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1437 [^\\\x80-\xff\n\015()] * # normal*
1440 [\040\t]* )* # If comment found, allow more spaces.
1442 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1443 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1446 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1449 [\040\t]* # Nab whitespace.
1452 [^\\\x80-\xff\n\015()] * # normal*
1454 (?: \\ [^\x80-\xff] |
1456 [^\\\x80-\xff\n\015()] * # normal*
1457 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1460 [^\\\x80-\xff\n\015()] * # normal*
1463 [\040\t]* )* # If comment found, allow more spaces.
1464 # optional trailing comments
1467 [\040\t]* # Nab whitespace.
1470 [^\\\x80-\xff\n\015()] * # normal*
1472 (?: \\ [^\x80-\xff] |
1474 [^\\\x80-\xff\n\015()] * # normal*
1475 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1478 [^\\\x80-\xff\n\015()] * # normal*
1481 [\040\t]* )* # If comment found, allow more spaces.
1483 [\040\t]* # Nab whitespace.
1486 [^\\\x80-\xff\n\015()] * # normal*
1488 (?: \\ [^\x80-\xff] |
1490 [^\\\x80-\xff\n\015()] * # normal*
1491 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1494 [^\\\x80-\xff\n\015()] * # normal*
1497 [\040\t]* )* # If comment found, allow more spaces.
1499 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1500 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1503 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1506 [\040\t]* # Nab whitespace.
1509 [^\\\x80-\xff\n\015()] * # normal*
1511 (?: \\ [^\x80-\xff] |
1513 [^\\\x80-\xff\n\015()] * # normal*
1514 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1517 [^\\\x80-\xff\n\015()] * # normal*
1520 [\040\t]* )* # If comment found, allow more spaces.
1521 # optional trailing comments
1524 [\040\t]* # Nab whitespace.
1527 [^\\\x80-\xff\n\015()] * # normal*
1529 (?: \\ [^\x80-\xff] |
1531 [^\\\x80-\xff\n\015()] * # normal*
1532 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1535 [^\\\x80-\xff\n\015()] * # normal*
1538 [\040\t]* )* # If comment found, allow more spaces.
1540 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1541 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1544 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1547 [\040\t]* # Nab whitespace.
1550 [^\\\x80-\xff\n\015()] * # normal*
1552 (?: \\ [^\x80-\xff] |
1554 [^\\\x80-\xff\n\015()] * # normal*
1555 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1558 [^\\\x80-\xff\n\015()] * # normal*
1561 [\040\t]* )* # If comment found, allow more spaces.
1562 # optional trailing comments
1564 )* # additional domains
1566 [\040\t]* # Nab whitespace.
1569 [^\\\x80-\xff\n\015()] * # normal*
1571 (?: \\ [^\x80-\xff] |
1573 [^\\\x80-\xff\n\015()] * # normal*
1574 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1577 [^\\\x80-\xff\n\015()] * # normal*
1580 [\040\t]* )* # If comment found, allow more spaces.
1581 # optional trailing comments
1584 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1585 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1589 [^\\\x80-\xff\n\015"] * # normal
1590 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
1594 [\040\t]* # Nab whitespace.
1597 [^\\\x80-\xff\n\015()] * # normal*
1599 (?: \\ [^\x80-\xff] |
1601 [^\\\x80-\xff\n\015()] * # normal*
1602 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1605 [^\\\x80-\xff\n\015()] * # normal*
1608 [\040\t]* )* # If comment found, allow more spaces.
1611 [\040\t]* # Nab whitespace.
1614 [^\\\x80-\xff\n\015()] * # normal*
1616 (?: \\ [^\x80-\xff] |
1618 [^\\\x80-\xff\n\015()] * # normal*
1619 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1622 [^\\\x80-\xff\n\015()] * # normal*
1625 [\040\t]* )* # If comment found, allow more spaces.
1627 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1628 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1632 [^\\\x80-\xff\n\015"] * # normal
1633 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
1637 [\040\t]* # Nab whitespace.
1640 [^\\\x80-\xff\n\015()] * # normal*
1642 (?: \\ [^\x80-\xff] |
1644 [^\\\x80-\xff\n\015()] * # normal*
1645 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1648 [^\\\x80-\xff\n\015()] * # normal*
1651 [\040\t]* )* # If comment found, allow more spaces.
1655 [\040\t]* # Nab whitespace.
1658 [^\\\x80-\xff\n\015()] * # normal*
1660 (?: \\ [^\x80-\xff] |
1662 [^\\\x80-\xff\n\015()] * # normal*
1663 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1666 [^\\\x80-\xff\n\015()] * # normal*
1669 [\040\t]* )* # If comment found, allow more spaces.
1671 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1672 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1675 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1678 [\040\t]* # Nab whitespace.
1681 [^\\\x80-\xff\n\015()] * # normal*
1683 (?: \\ [^\x80-\xff] |
1685 [^\\\x80-\xff\n\015()] * # normal*
1686 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1689 [^\\\x80-\xff\n\015()] * # normal*
1692 [\040\t]* )* # If comment found, allow more spaces.
1693 # optional trailing comments
1696 [\040\t]* # Nab whitespace.
1699 [^\\\x80-\xff\n\015()] * # normal*
1701 (?: \\ [^\x80-\xff] |
1703 [^\\\x80-\xff\n\015()] * # normal*
1704 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1707 [^\\\x80-\xff\n\015()] * # normal*
1710 [\040\t]* )* # If comment found, allow more spaces.
1712 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1713 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1716 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1719 [\040\t]* # Nab whitespace.
1722 [^\\\x80-\xff\n\015()] * # normal*
1724 (?: \\ [^\x80-\xff] |
1726 [^\\\x80-\xff\n\015()] * # normal*
1727 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1730 [^\\\x80-\xff\n\015()] * # normal*
1733 [\040\t]* )* # If comment found, allow more spaces.
1734 # optional trailing comments
1741 Alan Other <user\@dom.ain>
1744 \"A. Other\" <user.1234\@dom.ain> (a comment)
1745 A. Other <user.1234\@dom.ain> (a comment)
1746 \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
1747 A missing angle <user\@some.where
1751 /abc\0def\00pqr\000xyz\0000AB/
1752 abc\0def\00pqr\000xyz\0000AB
1753 abc456 abc\0def\00pqr\000xyz\0000ABCDE
1755 /abc\x0def\x00pqr\x000xyz\x0000AB/
1756 abc\x0def\x00pqr\x000xyz\x0000AB
1757 abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE
1795 /([^.]*)\.([^:]*):[T ]+(.*)/
1796 track1.title:TBlah blah blah
1798 /([^.]*)\.([^:]*):[T ]+(.*)/i
1799 track1.title:TBlah blah blah
1801 /([^.]*)\.([^:]*):[t ]+(.*)/i
1802 track1.title:TBlah blah blah
1939 /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
1963 /^([^a])([^\b])([^c]*)([^d]{3,4})/
2025 /\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/
2026 \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
2028 /P[^*]TAIRE[^*]{1,6}?LL/
2029 xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
2031 /P[^*]TAIRE[^*]{1,}?LL/
2032 xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
2039 /(\.\d\d((?=0)|\d(?=\d)))/
2049 Food is on the foo table
2052 The food is under the bar in the barn.
2055 The food is under the bar in the barn.
2058 I have 2 numbers: 53147
2061 I have 2 numbers: 53147
2064 I have 2 numbers: 53147
2067 I have 2 numbers: 53147
2070 I have 2 numbers: 53147
2073 I have 2 numbers: 53147
2076 I have 2 numbers: 53147
2079 I have 2 numbers: 53147
2084 /^(\D*)(?=\d)(?!123)/
2112 /\d\d\/\d\d\/\d\d\d\d/
2115 /word (?:[a-zA-Z0-9]+ ){0,10}otherword/
2116 word cat dog elephant mussel cow horse canary baboon snake shark otherword
2117 word cat dog elephant mussel cow horse canary baboon snake shark
2119 /word (?:[a-zA-Z0-9]+ ){0,300}otherword/
2120 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
2201 borfle\nbib.gif\nno\n
2204 borfle\nbib.gif\nno\n
2207 borfle\nbib.gif\nno\n
2210 borfle\nbib.gif\nno\n
2265 /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
2268 /^\d\d\d\d\d\d\d\d\d\d\d\d/
2271 /^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
2283 /^[abcdefghijklmnopqrstuvwxy0123456789]/
2316 the \"quick\" brown fox
2317 \"the \\\"quick\\\" brown fox\"
2331 /<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
2332 <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>
2409 /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
2412 /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
2414 /(?>(\.\d\d[1-9]?))\d+/
2420 /^((?>\w+)|(?>\s+))*$/
2421 now is the time for all good men to come to the aid of the party
2423 this is not a line with only words and spaces!
2452 /((?>[^()]+)|\([^()]*\))+/
2455 /\(((?>[^()]+)|\([^()]+\))+\)/
2459 ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
2475 /(a b(?x)c d (?-x)e f)/
2513 /(?s-i:more.*than).*million/i
2516 more \n than Million
2519 more \n than \n million
2521 /(?:(?s-i)more.*than).*million/i
2524 more \n than Million
2527 more \n than \n million
2546 /(?<=a(?i)b)(\w\w)c/
2554 /^(?(?=abc)\w{3}:|\d\d)$/
2561 /^(?(?!abc)\d\d|\w{3}:)$/
2568 /(?(?<=foo)bar|cat)/
2576 /(?(?<!foo)cat|bar)/
2647 /(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /x
2653 /(?i:saturday|sunday)/
2673 /^([ab](?i)[cd]|[ef])/
2684 /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
2701 /(?<=(?<!foo)bar)baz/
2709 /The following tests are taken from the Perl 5.005 test suite; some of them/
2710 /are compatible with 5.004, but I'd rather not have to sort them out./
3050 /[a-zA-Z_][a-zA-Z0-9_]*/
3053 /^a(bc+|b[eh])g|.h$/
3056 /(bc+d$|ef*g.|h?i(j|k))/
3064 /((((((((((a))))))))))/
3067 /(((((((((a)))))))))/
3070 /multiple words of text/
3076 multiple words, yeah
3360 /[a-zA-Z_][a-zA-Z0-9_]*/i
3363 /^a(bc+|b[eh])g|.h$/i
3366 /(bc+d$|ef*g.|h?i(j|k))/i
3375 /((((((((((a))))))))))/i
3378 /(((((((((a)))))))))/i
3381 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
3384 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
3387 /multiple words of text/i
3393 MULTIPLE WORDS, YEAH
3437 /a(?:b|c|d){4,5}(.)/
3440 /a(?:b|c|d){4,5}?(.)/
3446 /a(?:b|c|d){6,7}(.)/
3449 /a(?:b|c|d){6,7}?(.)/
3452 /a(?:b|c|d){5,6}(.)/
3455 /a(?:b|c|d){5,6}?(.)/
3458 /a(?:b|c|d){5,7}(.)/
3461 /a(?:b|c|d){5,7}?(.)/
3464 /a(?:b|(c|e){1,2}?|d)+?(.)/
3476 /(?:(f)(o)(o)|(b)(a)(r))*/
3624 /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
3627 /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
3628 caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
3639 /^a (?#xxx) (?#yyy) {3}c/x
3663 /((?s)^a(.))((?m)^b$)/
3758 /((?>[^()]+)|\([^()]*\))+/
3778 /(?>.*)(?<=(abcd|wxyz))/
3782 a rather long string that doesn't end with one of them
3784 /word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
3785 word cat dog elephant mussel cow horse canary baboon snake shark otherword
3786 word cat dog elephant mussel cow horse canary baboon snake shark
3788 /word (?>[a-zA-Z0-9]+ ){0,30}otherword/
3789 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
3791 /(?<=\d{3}(?!999))foo/
3797 /(?<=(?!...999)\d{3})foo/
3803 /(?<=\d{3}(?!999)...)foo/
3809 /(?<=\d{3}...)(?<!999)foo/
3841 > \x09\x0a\x0c\x0d\x0b<
3844 > \x09\x0a\x0c\x0d\x0b<
3847 > \x09\x0a\x0c\x0d\x0b<
3850 > \x09\x0a\x0c\x0d\x0b<
3875 abc#not comment\n literal
3880 abc#not comment\n literal
3884 literal\E #more comment
3886 abc#not comment\n literal
3890 literal\E #more comment/x
3891 abc#not comment\n literal
3915 /((?x)x y z | a b c)/
3950 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3952 /(?i)reg(?:ul(?:[aä]|ae)r|ex)/
3958 /Åæåä[à -ÿÀ-ß]+/
3974 /abc/SS>testsavedregex
3980 /abc/FSS>testsavedregex
3986 /(a|b)/S>testsavedregex
3992 /(a|b)/SF>testsavedregex
3999 this is a line\nbreak
4000 line one\nthis is a line\nbreak in the second line
4003 this is a line\nbreak
4005 line one\nthis is a line\nbreak in the second line
4008 this is a line\nbreak
4010 line one\nthis is a line\nbreak in the second line
4043 /Content-Type\x3A[^\r\n]{6,}/
4044 Content-Type:xxxxxyyy
4046 /Content-Type\x3A[^\r\n]{6,}z/
4047 Content-Type:xxxxxyyyz
4049 /Content-Type\x3A[^a]{6,}/
4052 /Content-Type\x3A[^a]{6,}z/
4053 Content-Type:xxxyyyz
4075 xyzabc\r\npqr\<crlf>
4132 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4133 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
4136 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4137 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
4140 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4141 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
4153 abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
4156 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
4158 /^a\Rb/<bsr_unicode>
4168 /^a\R*b/<bsr_unicode>
4179 /^a\R+b/<bsr_unicode>
4191 /^a\R{1,3}b/<bsr_unicode>
4203 /^a[\R]b/<bsr_unicode>
4245 /(?m)^$|^\r\n/<any>g+
4255 /(x)(?|(abc)|(xyz))(x)/
4259 /(x)(?|(abc)(pqr)|(xyz))(x)/
4263 /(?|(abc)|(xyz))(?1)/
4276 \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a
4277 \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a
4278 \x09\x20\xa0\x0a\x0b\x0c
4280 \x09\x20\xa0\x0a\x0b
4296 /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/
4297 >XY\x0aZ\x0aA\x0bNN\x0c
4298 >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
4312 /a\Rb/I<bsr_anycrlf>
4320 /a\Rb/I<bsr_unicode>
4327 a\x85b\<bsr_anycrlf>
4328 a\x0bb\<bsr_anycrlf>
4330 /a\R?b/I<bsr_anycrlf>
4338 /a\R?b/I<bsr_unicode>
4345 a\x85b\<bsr_anycrlf>
4346 a\x0bb\<bsr_anycrlf>
4348 /a\R{2,4}b/I<bsr_anycrlf>
4356 /a\R{2,4}b/I<bsr_unicode>
4364 a\x85\85b\<bsr_anycrlf>
4365 a\x0b\0bb\<bsr_anycrlf>
4413 /(*NO_START_OPT)xyz/C
4424 /^"((?(?=[a])[^"])|b)*"$/C
4495 the quick xyz brown fox
4497 \Ythe quick xyz brown fox
4499 thejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
4500 \Ythejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
4504 the quick xyz brown fox
4506 \Ythe quick xyz brown fox
4508 thejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
4509 \Ythejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
4532 /(?:(?1)|B)(A(*F)|C)/
4538 /^(?:(?1)|B)(A(*F)|C)/
4671 /^(?=(?1))?[az]([abc])d/
4697 /(?(R)a*(?1)|((?R))b)/
4783 /-- Test simple validity check for restarts --/
4788 /<H((?(?!<H|F>)(.)|(?R))++)*F>/
4789 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.
4791 /^(?>.{4})abc|^\w\w.xabcd/
4795 /^(.{4}){2}+abc|^\w\w.x\w\w\w\wabcd/
4802 /-- These tests show up auto-possessification --/
4834 /-- End of testinput8 --/