1 /-- This set of tests is for features that are compatible with all versions of
2 Perl >= 5.10, in non-UTF-8 mode. It should run clean for both the 8-bit and
3 16-bit PCRE libraries. --/
10 What do you know about the quick brown fox?
11 0: the quick brown fox
12 What do you know about THE QUICK BROWN FOX?
15 /The quick brown fox/i
17 0: the quick brown fox
19 0: The quick brown FOX
20 What do you know about the quick brown fox?
21 0: the quick brown fox
22 What do you know about THE QUICK BROWN FOX?
23 0: THE QUICK BROWN FOX
25 /abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
26 abcd\t\n\r\f\a\e9;\$\\?caxyz
27 0: abcd\x09\x0a\x0d\x0c\x07\x1b9;$\?caxyz
29 /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
30 abxyzpqrrrabbxyyyypqAzz
31 0: abxyzpqrrrabbxyyyypqAzz
32 abxyzpqrrrabbxyyyypqAzz
33 0: abxyzpqrrrabbxyyyypqAzz
34 aabxyzpqrrrabbxyyyypqAzz
35 0: aabxyzpqrrrabbxyyyypqAzz
36 aaabxyzpqrrrabbxyyyypqAzz
37 0: aaabxyzpqrrrabbxyyyypqAzz
38 aaaabxyzpqrrrabbxyyyypqAzz
39 0: aaaabxyzpqrrrabbxyyyypqAzz
40 abcxyzpqrrrabbxyyyypqAzz
41 0: abcxyzpqrrrabbxyyyypqAzz
42 aabcxyzpqrrrabbxyyyypqAzz
43 0: aabcxyzpqrrrabbxyyyypqAzz
44 aaabcxyzpqrrrabbxyyyypAzz
45 0: aaabcxyzpqrrrabbxyyyypAzz
46 aaabcxyzpqrrrabbxyyyypqAzz
47 0: aaabcxyzpqrrrabbxyyyypqAzz
48 aaabcxyzpqrrrabbxyyyypqqAzz
49 0: aaabcxyzpqrrrabbxyyyypqqAzz
50 aaabcxyzpqrrrabbxyyyypqqqAzz
51 0: aaabcxyzpqrrrabbxyyyypqqqAzz
52 aaabcxyzpqrrrabbxyyyypqqqqAzz
53 0: aaabcxyzpqrrrabbxyyyypqqqqAzz
54 aaabcxyzpqrrrabbxyyyypqqqqqAzz
55 0: aaabcxyzpqrrrabbxyyyypqqqqqAzz
56 aaabcxyzpqrrrabbxyyyypqqqqqqAzz
57 0: aaabcxyzpqrrrabbxyyyypqqqqqqAzz
58 aaaabcxyzpqrrrabbxyyyypqAzz
59 0: aaaabcxyzpqrrrabbxyyyypqAzz
60 abxyzzpqrrrabbxyyyypqAzz
61 0: abxyzzpqrrrabbxyyyypqAzz
62 aabxyzzzpqrrrabbxyyyypqAzz
63 0: aabxyzzzpqrrrabbxyyyypqAzz
64 aaabxyzzzzpqrrrabbxyyyypqAzz
65 0: aaabxyzzzzpqrrrabbxyyyypqAzz
66 aaaabxyzzzzpqrrrabbxyyyypqAzz
67 0: aaaabxyzzzzpqrrrabbxyyyypqAzz
68 abcxyzzpqrrrabbxyyyypqAzz
69 0: abcxyzzpqrrrabbxyyyypqAzz
70 aabcxyzzzpqrrrabbxyyyypqAzz
71 0: aabcxyzzzpqrrrabbxyyyypqAzz
72 aaabcxyzzzzpqrrrabbxyyyypqAzz
73 0: aaabcxyzzzzpqrrrabbxyyyypqAzz
74 aaaabcxyzzzzpqrrrabbxyyyypqAzz
75 0: aaaabcxyzzzzpqrrrabbxyyyypqAzz
76 aaaabcxyzzzzpqrrrabbbxyyyypqAzz
77 0: aaaabcxyzzzzpqrrrabbbxyyyypqAzz
78 aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
79 0: aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
80 aaabcxyzpqrrrabbxyyyypABzz
81 0: aaabcxyzpqrrrabbxyyyypABzz
82 aaabcxyzpqrrrabbxyyyypABBzz
83 0: aaabcxyzpqrrrabbxyyyypABBzz
84 >>>aaabxyzpqrrrabbxyyyypqAzz
85 0: aaabxyzpqrrrabbxyyyypqAzz
86 >aaaabxyzpqrrrabbxyyyypqAzz
87 0: aaaabxyzpqrrrabbxyyyypqAzz
88 >>>>abcxyzpqrrrabbxyyyypqAzz
89 0: abcxyzpqrrrabbxyyyypqAzz
92 abxyzpqrrabbxyyyypqAzz
94 abxyzpqrrrrabbxyyyypqAzz
96 abxyzpqrrrabxyyyypqAzz
98 aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz
100 aaaabcxyzzzzpqrrrabbbxyyypqAzz
102 aaabcxyzpqrrrabbxyyyypqqqqqqqAzz
360 /^.+[0-9][0-9][0-9]$/
374 /^.+?[0-9][0-9][0-9]$/
388 /^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/
389 abc!pqr=apquxz.ixr.zzz.ac.uk
390 0: abc!pqr=apquxz.ixr.zzz.ac.uk
395 !pqr=apquxz.ixr.zzz.ac.uk
397 abc!=apquxz.ixr.zzz.ac.uk
399 abc!pqr=apquxz:ixr.zzz.ac.uk
401 abc!pqr=apquxz.ixr.zzz.ac.ukk
405 Well, we need a colon: somewhere
446 /^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
466 /^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
467 1 IN SOA non-sp1 non-sp2(
468 0: 1 IN SOA non-sp1 non-sp2(
472 1 IN SOA non-sp1 non-sp2 (
473 0: 1 IN SOA non-sp1 non-sp2 (
479 1IN SOA non-sp1 non-sp2(
482 /^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/
503 /^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/
529 /^(?=ab(de))(abd)(e)/
536 /^(?!(ab)de|x)(abd)(f)/
550 /^[\da-f](\.[\da-f])*$/i
581 / ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/x
591 /(?x) ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/
613 /^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
629 /^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
641 /^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
643 0: a+ Z0+\x08\x0a\x1d\x12
747 /\A(abc|def)=(\1){2,3}\Z/
761 /^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\11*(\3\4)\1(?#)2$/
777 0: abcdefghijkkkkcda2
791 /(cat(a(ract|tonic)|erpillar)) \1()2(3)/
793 0: cataract cataract23
799 catatonic catatonic23
800 0: catatonic catatonic23
806 caterpillar caterpillar23
807 0: caterpillar caterpillar23
815 /^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]/
816 From abcd Mon Sep 01 12:33:02 1997
817 0: From abcd Mon Sep 01 12:33
820 /^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/
821 From abcd Mon Sep 01 12:33:02 1997
822 0: From abcd Mon Sep 01 12:33
824 From abcd Mon Sep 1 12:33:02 1997
825 0: From abcd Mon Sep 1 12:33
829 From abcd Sep 01 12:33:02 1997
839 the quick brown\t fox
843 foobar is foolish see?
847 /(?:(?!foo)...|^.{0,2})bar(.*)/
861 /^(\D*)(?=\d)(?!123)/
870 /^1234(?# test newlines
875 /^1234 #comment in extended re
933 /^[ab]{1,3}?(ab*?|b)/
944 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
945 \) )* # optional leading comment
947 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
948 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
950 " (?: # opening quote...
951 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
953 \\ [^\x80-\xff] # Escaped something (something != CR)
956 (?: (?: [\040\t] | \(
957 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
958 \) )* \. (?: [\040\t] | \(
959 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
961 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
962 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
964 " (?: # opening quote...
965 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
967 \\ [^\x80-\xff] # Escaped something (something != CR)
969 ) )* # further okay, if led by a period
971 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
972 \) )* @ (?: [\040\t] | \(
973 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
975 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
976 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
978 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
980 ) # initial subdomain
983 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
984 \) )* \. # if led by a period...
986 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
988 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
989 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
991 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
998 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
999 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1001 " (?: # opening quote...
1002 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
1004 \\ [^\x80-\xff] # Escaped something (something != CR)
1005 )* " # closing quote
1006 ) # one word, optionally followed by....
1008 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or...
1010 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1011 \) | # comments, or...
1013 " (?: # opening quote...
1014 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
1016 \\ [^\x80-\xff] # Escaped something (something != CR)
1017 )* " # closing quote
1021 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1023 (?: @ (?: [\040\t] | \(
1024 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1026 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1027 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1029 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1031 ) # initial subdomain
1034 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1035 \) )* \. # if led by a period...
1037 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1039 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1040 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1042 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1047 (?: (?: [\040\t] | \(
1048 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1049 \) )* , (?: [\040\t] | \(
1050 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1051 \) )* @ (?: [\040\t] | \(
1052 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1054 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1055 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1057 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1059 ) # initial subdomain
1062 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1063 \) )* \. # if led by a period...
1065 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1067 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1068 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1070 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1074 )* # further okay, if led by comma
1077 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1078 \) )* )? # optional route
1080 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1081 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1083 " (?: # opening quote...
1084 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
1086 \\ [^\x80-\xff] # Escaped something (something != CR)
1087 )* " # closing quote
1089 (?: (?: [\040\t] | \(
1090 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1091 \) )* \. (?: [\040\t] | \(
1092 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1094 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1095 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1097 " (?: # opening quote...
1098 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
1100 \\ [^\x80-\xff] # Escaped something (something != CR)
1101 )* " # closing quote
1102 ) )* # further okay, if led by a period
1104 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1105 \) )* @ (?: [\040\t] | \(
1106 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1108 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1109 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1111 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1113 ) # initial subdomain
1116 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1117 \) )* \. # if led by a period...
1119 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1121 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1122 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1124 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1130 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1131 \) )* > # trailing >
1134 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1135 \) )* # optional trailing comment
1137 Alan Other <user\@dom.ain>
1138 0: Alan Other <user@dom.ain>
1143 \"A. Other\" <user.1234\@dom.ain> (a comment)
1144 0: "A. Other" <user.1234@dom.ain> (a comment)
1145 A. Other <user.1234\@dom.ain> (a comment)
1146 0: Other <user.1234@dom.ain> (a comment)
1147 \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
1148 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay
1149 A missing angle <user\@some.where
1156 /[\040\t]* # Nab whitespace.
1159 [^\\\x80-\xff\n\015()] * # normal*
1161 (?: \\ [^\x80-\xff] |
1163 [^\\\x80-\xff\n\015()] * # normal*
1164 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1167 [^\\\x80-\xff\n\015()] * # normal*
1170 [\040\t]* )* # If comment found, allow more spaces.
1171 # optional leading comment
1174 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1175 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1179 [^\\\x80-\xff\n\015"] * # normal
1180 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
1184 [\040\t]* # Nab whitespace.
1187 [^\\\x80-\xff\n\015()] * # normal*
1189 (?: \\ [^\x80-\xff] |
1191 [^\\\x80-\xff\n\015()] * # normal*
1192 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1195 [^\\\x80-\xff\n\015()] * # normal*
1198 [\040\t]* )* # If comment found, allow more spaces.
1201 [\040\t]* # Nab whitespace.
1204 [^\\\x80-\xff\n\015()] * # normal*
1206 (?: \\ [^\x80-\xff] |
1208 [^\\\x80-\xff\n\015()] * # normal*
1209 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1212 [^\\\x80-\xff\n\015()] * # normal*
1215 [\040\t]* )* # If comment found, allow more spaces.
1217 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1218 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1222 [^\\\x80-\xff\n\015"] * # normal
1223 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
1227 [\040\t]* # Nab whitespace.
1230 [^\\\x80-\xff\n\015()] * # normal*
1232 (?: \\ [^\x80-\xff] |
1234 [^\\\x80-\xff\n\015()] * # normal*
1235 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1238 [^\\\x80-\xff\n\015()] * # normal*
1241 [\040\t]* )* # If comment found, allow more spaces.
1245 [\040\t]* # Nab whitespace.
1248 [^\\\x80-\xff\n\015()] * # normal*
1250 (?: \\ [^\x80-\xff] |
1252 [^\\\x80-\xff\n\015()] * # normal*
1253 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1256 [^\\\x80-\xff\n\015()] * # normal*
1259 [\040\t]* )* # If comment found, allow more spaces.
1261 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1262 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1265 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1268 [\040\t]* # Nab whitespace.
1271 [^\\\x80-\xff\n\015()] * # normal*
1273 (?: \\ [^\x80-\xff] |
1275 [^\\\x80-\xff\n\015()] * # normal*
1276 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1279 [^\\\x80-\xff\n\015()] * # normal*
1282 [\040\t]* )* # If comment found, allow more spaces.
1283 # optional trailing comments
1286 [\040\t]* # Nab whitespace.
1289 [^\\\x80-\xff\n\015()] * # normal*
1291 (?: \\ [^\x80-\xff] |
1293 [^\\\x80-\xff\n\015()] * # normal*
1294 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1297 [^\\\x80-\xff\n\015()] * # normal*
1300 [\040\t]* )* # If comment found, allow more spaces.
1302 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1303 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1306 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1309 [\040\t]* # Nab whitespace.
1312 [^\\\x80-\xff\n\015()] * # normal*
1314 (?: \\ [^\x80-\xff] |
1316 [^\\\x80-\xff\n\015()] * # normal*
1317 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1320 [^\\\x80-\xff\n\015()] * # normal*
1323 [\040\t]* )* # If comment found, allow more spaces.
1324 # optional trailing comments
1329 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1330 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1334 [^\\\x80-\xff\n\015"] * # normal
1335 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
1340 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # "normal" atoms and or spaces
1344 [^\\\x80-\xff\n\015()] * # normal*
1346 (?: \\ [^\x80-\xff] |
1348 [^\\\x80-\xff\n\015()] * # normal*
1349 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1352 [^\\\x80-\xff\n\015()] * # normal*
1357 [^\\\x80-\xff\n\015"] * # normal
1358 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
1360 ) # "special" comment or quoted string
1361 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # more "normal"
1364 [\040\t]* # Nab whitespace.
1367 [^\\\x80-\xff\n\015()] * # normal*
1369 (?: \\ [^\x80-\xff] |
1371 [^\\\x80-\xff\n\015()] * # normal*
1372 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1375 [^\\\x80-\xff\n\015()] * # normal*
1378 [\040\t]* )* # If comment found, allow more spaces.
1382 [\040\t]* # Nab whitespace.
1385 [^\\\x80-\xff\n\015()] * # normal*
1387 (?: \\ [^\x80-\xff] |
1389 [^\\\x80-\xff\n\015()] * # normal*
1390 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1393 [^\\\x80-\xff\n\015()] * # normal*
1396 [\040\t]* )* # If comment found, allow more spaces.
1398 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1399 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1402 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1405 [\040\t]* # Nab whitespace.
1408 [^\\\x80-\xff\n\015()] * # normal*
1410 (?: \\ [^\x80-\xff] |
1412 [^\\\x80-\xff\n\015()] * # normal*
1413 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1416 [^\\\x80-\xff\n\015()] * # normal*
1419 [\040\t]* )* # If comment found, allow more spaces.
1420 # optional trailing comments
1423 [\040\t]* # Nab whitespace.
1426 [^\\\x80-\xff\n\015()] * # normal*
1428 (?: \\ [^\x80-\xff] |
1430 [^\\\x80-\xff\n\015()] * # normal*
1431 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1434 [^\\\x80-\xff\n\015()] * # normal*
1437 [\040\t]* )* # If comment found, allow more spaces.
1439 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1440 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1443 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1446 [\040\t]* # Nab whitespace.
1449 [^\\\x80-\xff\n\015()] * # normal*
1451 (?: \\ [^\x80-\xff] |
1453 [^\\\x80-\xff\n\015()] * # normal*
1454 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1457 [^\\\x80-\xff\n\015()] * # normal*
1460 [\040\t]* )* # If comment found, allow more spaces.
1461 # optional trailing comments
1464 [\040\t]* # Nab whitespace.
1467 [^\\\x80-\xff\n\015()] * # normal*
1469 (?: \\ [^\x80-\xff] |
1471 [^\\\x80-\xff\n\015()] * # normal*
1472 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1475 [^\\\x80-\xff\n\015()] * # normal*
1478 [\040\t]* )* # If comment found, allow more spaces.
1480 [\040\t]* # Nab whitespace.
1483 [^\\\x80-\xff\n\015()] * # normal*
1485 (?: \\ [^\x80-\xff] |
1487 [^\\\x80-\xff\n\015()] * # normal*
1488 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1491 [^\\\x80-\xff\n\015()] * # normal*
1494 [\040\t]* )* # If comment found, allow more spaces.
1496 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1497 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1500 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1503 [\040\t]* # Nab whitespace.
1506 [^\\\x80-\xff\n\015()] * # normal*
1508 (?: \\ [^\x80-\xff] |
1510 [^\\\x80-\xff\n\015()] * # normal*
1511 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1514 [^\\\x80-\xff\n\015()] * # normal*
1517 [\040\t]* )* # If comment found, allow more spaces.
1518 # optional trailing comments
1521 [\040\t]* # Nab whitespace.
1524 [^\\\x80-\xff\n\015()] * # normal*
1526 (?: \\ [^\x80-\xff] |
1528 [^\\\x80-\xff\n\015()] * # normal*
1529 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1532 [^\\\x80-\xff\n\015()] * # normal*
1535 [\040\t]* )* # If comment found, allow more spaces.
1537 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1538 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1541 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1544 [\040\t]* # Nab whitespace.
1547 [^\\\x80-\xff\n\015()] * # normal*
1549 (?: \\ [^\x80-\xff] |
1551 [^\\\x80-\xff\n\015()] * # normal*
1552 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1555 [^\\\x80-\xff\n\015()] * # normal*
1558 [\040\t]* )* # If comment found, allow more spaces.
1559 # optional trailing comments
1561 )* # additional domains
1563 [\040\t]* # Nab whitespace.
1566 [^\\\x80-\xff\n\015()] * # normal*
1568 (?: \\ [^\x80-\xff] |
1570 [^\\\x80-\xff\n\015()] * # normal*
1571 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1574 [^\\\x80-\xff\n\015()] * # normal*
1577 [\040\t]* )* # If comment found, allow more spaces.
1578 # optional trailing comments
1581 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1582 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1586 [^\\\x80-\xff\n\015"] * # normal
1587 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
1591 [\040\t]* # Nab whitespace.
1594 [^\\\x80-\xff\n\015()] * # normal*
1596 (?: \\ [^\x80-\xff] |
1598 [^\\\x80-\xff\n\015()] * # normal*
1599 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1602 [^\\\x80-\xff\n\015()] * # normal*
1605 [\040\t]* )* # If comment found, allow more spaces.
1608 [\040\t]* # Nab whitespace.
1611 [^\\\x80-\xff\n\015()] * # normal*
1613 (?: \\ [^\x80-\xff] |
1615 [^\\\x80-\xff\n\015()] * # normal*
1616 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1619 [^\\\x80-\xff\n\015()] * # normal*
1622 [\040\t]* )* # If comment found, allow more spaces.
1624 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1625 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1629 [^\\\x80-\xff\n\015"] * # normal
1630 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
1634 [\040\t]* # Nab whitespace.
1637 [^\\\x80-\xff\n\015()] * # normal*
1639 (?: \\ [^\x80-\xff] |
1641 [^\\\x80-\xff\n\015()] * # normal*
1642 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1645 [^\\\x80-\xff\n\015()] * # normal*
1648 [\040\t]* )* # If comment found, allow more spaces.
1652 [\040\t]* # Nab whitespace.
1655 [^\\\x80-\xff\n\015()] * # normal*
1657 (?: \\ [^\x80-\xff] |
1659 [^\\\x80-\xff\n\015()] * # normal*
1660 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1663 [^\\\x80-\xff\n\015()] * # normal*
1666 [\040\t]* )* # If comment found, allow more spaces.
1668 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1669 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1672 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1675 [\040\t]* # Nab whitespace.
1678 [^\\\x80-\xff\n\015()] * # normal*
1680 (?: \\ [^\x80-\xff] |
1682 [^\\\x80-\xff\n\015()] * # normal*
1683 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1686 [^\\\x80-\xff\n\015()] * # normal*
1689 [\040\t]* )* # If comment found, allow more spaces.
1690 # optional trailing comments
1693 [\040\t]* # Nab whitespace.
1696 [^\\\x80-\xff\n\015()] * # normal*
1698 (?: \\ [^\x80-\xff] |
1700 [^\\\x80-\xff\n\015()] * # normal*
1701 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1704 [^\\\x80-\xff\n\015()] * # normal*
1707 [\040\t]* )* # If comment found, allow more spaces.
1709 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1710 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1713 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1716 [\040\t]* # Nab whitespace.
1719 [^\\\x80-\xff\n\015()] * # normal*
1721 (?: \\ [^\x80-\xff] |
1723 [^\\\x80-\xff\n\015()] * # normal*
1724 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1727 [^\\\x80-\xff\n\015()] * # normal*
1730 [\040\t]* )* # If comment found, allow more spaces.
1731 # optional trailing comments
1738 Alan Other <user\@dom.ain>
1739 0: Alan Other <user@dom.ain>
1744 \"A. Other\" <user.1234\@dom.ain> (a comment)
1745 0: "A. Other" <user.1234@dom.ain>
1746 A. Other <user.1234\@dom.ain> (a comment)
1747 0: Other <user.1234@dom.ain>
1748 \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
1749 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay
1750 A missing angle <user\@some.where
1757 /abc\0def\00pqr\000xyz\0000AB/
1758 abc\0def\00pqr\000xyz\0000AB
1759 0: abc\x00def\x00pqr\x00xyz\x000AB
1760 abc456 abc\0def\00pqr\000xyz\0000ABCDE
1761 0: abc\x00def\x00pqr\x00xyz\x000AB
1763 /abc\x0def\x00pqr\x000xyz\x0000AB/
1764 abc\x0def\x00pqr\x000xyz\x0000AB
1765 0: abc\x0def\x00pqr\x000xyz\x0000AB
1766 abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE
1767 0: abc\x0def\x00pqr\x000xyz\x0000AB
1922 /([^.]*)\.([^:]*):[T ]+(.*)/
1923 track1.title:TBlah blah blah
1924 0: track1.title:TBlah blah blah
1929 /([^.]*)\.([^:]*):[T ]+(.*)/i
1930 track1.title:TBlah blah blah
1931 0: track1.title:TBlah blah blah
1936 /([^.]*)\.([^:]*):[t ]+(.*)/i
1937 track1.title:TBlah blah blah
1938 0: track1.title:TBlah blah blah
2165 /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\12\123/
2181 /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
2225 /^([^a])([^\b])([^c]*)([^d]{3,4})/
2355 /\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/
2356 \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
2357 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
2359 /P[^*]TAIRE[^*]{1,6}?LL/
2360 xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
2363 /P[^*]TAIRE[^*]{1,}?LL/
2364 xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
2378 /(\.\d\d((?=0)|\d(?=\d)))/
2397 Food is on the foo table
2403 The food is under the bar in the barn.
2404 0: food is under the bar in the bar
2405 1: d is under the bar in the
2408 The food is under the bar in the barn.
2409 0: food is under the bar
2413 I have 2 numbers: 53147
2414 0: I have 2 numbers: 53147
2415 1: I have 2 numbers: 53147
2419 I have 2 numbers: 53147
2420 0: I have 2 numbers: 53147
2421 1: I have 2 numbers: 5314
2425 I have 2 numbers: 53147
2431 I have 2 numbers: 53147
2437 I have 2 numbers: 53147
2438 0: I have 2 numbers: 53147
2439 1: I have 2 numbers: 5314
2443 I have 2 numbers: 53147
2444 0: I have 2 numbers: 53147
2445 1: I have 2 numbers:
2449 I have 2 numbers: 53147
2450 0: I have 2 numbers: 53147
2451 1: I have 2 numbers:
2455 I have 2 numbers: 53147
2456 0: I have 2 numbers: 53147
2457 1: I have 2 numbers:
2464 /^(\D*)(?=\d)(?!123)/
2515 /\d\d\/\d\d\/\d\d\d\d/
2519 /word (?:[a-zA-Z0-9]+ ){0,10}otherword/
2520 word cat dog elephant mussel cow horse canary baboon snake shark otherword
2521 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
2522 word cat dog elephant mussel cow horse canary baboon snake shark
2525 /word (?:[a-zA-Z0-9]+ ){0,300}otherword/
2526 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
2649 0: borfle\x0abib.gif
2653 0: borfle\x0abib.gif
2665 0: borfle\x0abib.gif\x0ano
2669 0: borfle\x0abib.gif\x0ano
2672 borfle\nbib.gif\nno\n
2676 borfle\nbib.gif\nno\n
2680 borfle\nbib.gif\nno\n
2681 0: borfle\x0abib.gif\x0ano\x0a
2684 borfle\nbib.gif\nno\n
2685 0: borfle\x0abib.gif\x0ano\x0a
2781 /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
2785 /^\d\d\d\d\d\d\d\d\d\d\d\d/
2789 /^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
2806 /^[abcdefghijklmnopqrstuvwxy0123456789]/
2863 the \"quick\" brown fox
2866 \"the \\\"quick\\\" brown fox\"
2867 0: "the \"quick\" brown fox"
2908 /<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
2909 <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>
2910 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>
2911 1: BGCOLOR='#DBE9E9'
2912 2: align=left valign=top
2914 4: <a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)
2918 8: align=left valign=top
2920 10: align=left valign=top
3065 /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
3069 /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
3070 0: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
3072 /(?>(\.\d\d[1-9]?))\d+/
3084 /^((?>\w+)|(?>\s+))*$/
3085 now is the time for all good men to come to the aid of the party
3086 0: now is the time for all good men to come to the aid of the party
3090 this is not a line with only words and spaces!
3135 /((?>[^()]+)|\([^()]*\))+/
3140 /\(((?>[^()]+)|\([^()]+\))+\)/
3149 ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3177 /(a b(?x)c d (?-x)e f)/
3246 /(?s-i:more.*than).*million/i
3248 0: more than million
3250 0: more than MILLION
3251 more \n than Million
3252 0: more \x0a than Million
3257 more \n than \n million
3260 /(?:(?s-i)more.*than).*million/i
3262 0: more than million
3264 0: more than MILLION
3265 more \n than Million
3266 0: more \x0a than Million
3271 more \n than \n million
3304 /(?<=a(?i)b)(\w\w)c/
3320 /(?:(a)|b)(?(1)A|B)/
3346 /^(?(?=abc)\w{3}:|\d\d)$/
3358 /^(?(?!abc)\d\d|\w{3}:)$/
3370 /(?(?<=foo)bar|cat)/
3384 /(?(?<!foo)cat|bar)/
3398 /( \( )? [^()]+ (?(1) \) |) /x
3404 the quick (abcd) fox
3409 /( \( )? [^()]+ (?(1) \) ) /x
3415 the quick (abcd) fox
3460 /((?i)blah)\s+(?i:\1)/
3615 /(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /x
3639 /(?i:saturday|sunday)/
3679 /^([ab](?i)[cd]|[ef])/
3706 /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
3742 /(?<=(?<!foo)bar)baz/
3756 /The cases of aaaa and aaaaaa are missed out below because Perl does things/
3757 /differently. We know that odd, and maybe incorrect, things happen with/
3759 /recursive references in Perl, as far as 5.11.3 - see some stuff in test #2./
3795 /^(a\1?)(a\1?)(a\2?)(a\3?)$/
3849 /The following tests are taken from the Perl 5.005 test suite; some of them/
3850 /are compatible with 5.004, but I'd rather not have to sort them out./
4373 /[a-zA-Z_][a-zA-Z0-9_]*/
4377 /^a(bc+|b[eh])g|.h$/
4381 /(bc+d$|ef*g.|h?i(j|k))/
4399 /((((((((((a))))))))))/
4413 /((((((((((a))))))))))\10/
4427 /(((((((((a)))))))))/
4440 /multiple words of text/
4449 multiple words, yeah
4522 bbaababbabaaaaabbaaaabba
4927 /[a-zA-Z_][a-zA-Z0-9_]*/i
4931 /^a(bc+|b[eh])g|.h$/i
4935 /(bc+d$|ef*g.|h?i(j|k))/i
4955 /((((((((((a))))))))))/i
4969 /((((((((((a))))))))))\10/i
4983 /(((((((((a)))))))))/i
4996 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
5001 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
5006 /multiple words of text/i
5015 MULTIPLE WORDS, YEAH
5095 /a(?:b|c|d){4,5}(.)/
5100 /a(?:b|c|d){4,5}?(.)/
5112 /a(?:b|c|d){6,7}(.)/
5117 /a(?:b|c|d){6,7}?(.)/
5122 /a(?:b|c|d){5,6}(.)/
5127 /a(?:b|c|d){5,6}?(.)/
5132 /a(?:b|c|d){5,7}(.)/
5137 /a(?:b|c|d){5,7}?(.)/
5142 /a(?:b|(c|e){1,2}?|d)+?(.)/
5186 /(?:(f)(o)(o)|(b)(a)(r))*/
5222 /^(?:b|a(?=(.)))*\1/
5420 /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
5424 /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
5425 caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
5426 0: caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
5449 /^a (?#xxx) (?#yyy) {3}c/x
5493 /((?s)^a(.))((?m)^b$)/
5578 /^(\()?blah(?(1)(\)))$/
5594 /^(\(+)?blah(?(1)(\)))$/
5732 /((?>[^()]+)|\([^()]*\))+/
5761 /^(?>(?(1)\.|())[^\W_](?>[a-z0-9-]*[^\W_])?)+$/
5781 0: the.quick.brown.fox
5809 the.quick.brown.fox-
5811 the.quick.brown.fox.
5813 the.quick.brown.fox_
5815 the.quick.brown.fox+
5818 /(?>.*)(?<=(abcd|wxyz))/
5827 a rather long string that doesn't end with one of them
5830 /word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
5831 word cat dog elephant mussel cow horse canary baboon snake shark otherword
5832 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
5833 word cat dog elephant mussel cow horse canary baboon snake shark
5836 /word (?>[a-zA-Z0-9]+ ){0,30}otherword/
5837 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
5840 /(?<=\d{3}(?!999))foo/
5850 /(?<=(?!...999)\d{3})foo/
5860 /(?<=\d{3}(?!999)...)foo/
5870 /(?<=\d{3}...)(?<!999)foo/
5880 /<a[\s]+href[\s]*=[\s]* # find <a href=
5881 ([\"\'])? # find single or double quote
5882 (?(1) (.*?)\1 | ([^\s]+)) # if quote found, match up to next matching
5883 # quote, otherwise match up to next space
5890 <a href=\"abcd xyz pqr\" cats
5891 0: <a href="abcd xyz pqr"
5894 <a href=\'abcd xyz pqr\' cats
5895 0: <a href='abcd xyz pqr'
5899 /<a\s+href\s*=\s* # find <a href=
5900 (["'])? # find single or double quote
5901 (?(1) (.*?)\1 | (\S+)) # if quote found, match up to next matching
5902 # quote, otherwise match up to next space
5909 <a href=\"abcd xyz pqr\" cats
5910 0: <a href="abcd xyz pqr"
5913 <a href = \'abcd xyz pqr\' cats
5914 0: <a href = 'abcd xyz pqr'
5918 /<a\s+href(?>\s*)=(?>\s*) # find <a href=
5919 (["'])? # find single or double quote
5920 (?(1) (.*?)\1 | (\S+)) # if quote found, match up to next matching
5921 # quote, otherwise match up to next space
5928 <a href=\"abcd xyz pqr\" cats
5929 0: <a href="abcd xyz pqr"
5932 <a href = \'abcd xyz pqr\' cats
5933 0: <a href = 'abcd xyz pqr'
6000 > \x09\x0a\x0c\x0d\x0b<
6001 0: \x09\x0a\x0c\x0d\x0b
6004 > \x09\x0a\x0c\x0d\x0b<
6008 > \x09\x0a\x0c\x0d\x0b<
6012 > \x09\x0a\x0c\x0d\x0b<
6046 abc#not comment\n literal
6047 0: abc#not comment\x0a literal
6052 abc#not comment\n literal
6053 0: abc#not comment\x0a literal
6057 literal\E #more comment
6059 abc#not comment\n literal
6060 0: abc#not comment\x0a literal
6064 literal\E #more comment/x
6065 abc#not comment\n literal
6066 0: abc#not comment\x0a literal
6103 /((?x)x y z | a b c)/
6163 /-- This tests for an IPv6 address in the form where it can have up to --/
6164 /-- eight components, one and only one of which is empty. This must be --/
6166 /-- an internal component. --/
6169 /^(?!:) # colon disallowed at start
6171 (?: [0-9a-f]{1,4} | # 1-4 hex digits or
6172 (?(1)0 | () ) ) # if null previously matched, fail; else null
6173 : # followed by colon
6174 ){1,7} # end item; 1-7 of them required
6175 [0-9a-f]{1,4} $ # final hex number at end of string
6176 (?(1)|.) # check that there was an empty component
6184 a123:b342::324e:abcd
6185 0: a123:b342::324e:abcd
6187 a123:ddde:b342::324e:abcd
6188 0: a123:ddde:b342::324e:abcd
6190 a123:ddde:b342::324e:dcba:abcd
6191 0: a123:ddde:b342::324e:dcba:abcd
6193 a123:ddde:9999:b342::324e:dcba:abcd
6194 0: a123:ddde:9999:b342::324e:dcba:abcd
6200 a123:bce:ddde:9999:b342::324e:dcba:abcd
6202 a123::9999:b342::324e:dcba:abcd
6242 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6245 /(?i)reg(?:ul(?:[aä]|ae)r|ex)/
6255 /Åæåä[à -ÿÀ-ß]+/
6257 0: \xc5\xe6\xe5\xe4\xe0
6259 0: \xc5\xe6\xe5\xe4\xff
6261 0: \xc5\xe6\xe5\xe4\xc0
6263 0: \xc5\xe6\xe5\xe4\xdf
6323 /(?:(?(1)\1a|b)(X|Y))+/
6331 /()()()()()()()()()(?:(?(10)\10a|b)(X|Y))+/
6357 "(?x)(?-x: \s*#\s*)"
6365 "(?x-is)(?:(?-ixs) \s*#\s*) include"
6514 /(a){0,3}(?(1)b|(c|))*D/
6528 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6530 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6531 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6535 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6537 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6538 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6541 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6543 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6544 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6551 /^(?s)(?>.*)(?<!\n)/
6574 /( (A | (?(1)0|) )* )/x
6580 /( ( (?(1)0|) )* )/x
6645 /^%((?(?=[a])[^%])|b)*%$/
6786 /(?:(?>(a))b|(a)c)++/
6792 /(?=(?>(a))b|(a)c)(..)/
6805 /(?:(?>([ab])))+a=/+
6817 /((?>(a+)b)+(aabab))/
6913 /^(?=(?1))?[az]([abc])d/
7068 \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a
7069 0: \x09 \xa0X\x0a\x0b\x0c\x0d
7070 \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a
7071 0: \x09 \xa0\x0a\x0b\x0c\x0d
7072 \x09\x20\xa0\x0a\x0b\x0c
7073 0: \x09 \xa0\x0a\x0b\x0c
7076 \x09\x20\xa0\x0a\x0b
7101 /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/
7102 >XY\x0aZ\x0aA\x0bNN\x0c
7103 0: XY\x0aZ\x0aA\x0bNN\x0c
7104 >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
7105 0: \x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
7157 /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/
7163 /(?<A>tom|bon)-\g{A}/
7189 /(?|(abc)|(xyz))(?1)/
7201 /^X(?5)(a)(?|(b)|(q))(c)(d)(Y)/
7210 /^X(?7)(a)(?|(b|(r)(s))|(q))(c)(d)(Y)/
7221 /^X(?7)(a)(?|(b|(?|(r)|(t))(s))|(q))(c)(d)(Y)/
7232 /(?'abc'\w+):\k<abc>{2}/
7246 /(?'abc'\w+):\g{abc}{2}/
7260 /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x
7277 /^(?(DEFINE) (?<A> a) (?<B> b) ) (?&A) (?&B) /x
7281 /(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT))
7291 /(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/
7311 /\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/
7329 now is the time for all good men to come to the aid of the party
7330 0: now is the time for all good men to come to the aid of the party
7334 this is not a line with only words and spaces!
7361 /([^()]++|\([^()]*\))+/
7366 /\(([^()]++|\([^()]+\))+\)/
7375 ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7378 /^([^()]|\((?1)*\))*$/
7393 /^>abc>([^()]|\((?1)*\))*<xyz<$/
7401 0: >abc>(1(2)3)<xyz<
7404 /^(?:((.)(?1)\2|)|((.)(?3)\4|.))$/i
7409 Satanoscillatemymetallicsonatas
7410 0: Satanoscillatemymetallicsonatas
7413 3: Satanoscillatemymetallicsonatas
7415 AmanaplanacanalPanama
7416 0: AmanaplanacanalPanama
7419 3: AmanaplanacanalPanama
7422 0: AblewasIereIsawElba
7425 3: AblewasIereIsawElba
7432 /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/
7464 /((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/x
7502 /a+b?(*PRUNE)c+(*FAIL)/
7506 /a+b?(*COMMIT)c+(*FAIL)/
7510 /a+b?(*SKIP)c+(*FAIL)/
7514 /^(?:aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/
7530 /^(aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/
7553 /a+b?(*THEN)c+(*FAIL)/
7557 /(A (A|B(*ACCEPT)|C) D)(E)/x
7581 /^\W*+(?:((.)\W*+(?1)\W*+\2|)|((.)\W*+(?3)\W*+\4|\W*+.\W*+))\W*+$/i
7586 Satan, oscillate my metallic sonatas!
7587 0: Satan, oscillate my metallic sonatas!
7590 3: Satan, oscillate my metallic sonatas
7592 A man, a plan, a canal: Panama!
7593 0: A man, a plan, a canal: Panama!
7596 3: A man, a plan, a canal: Panama
7598 Able was I ere I saw Elba.
7599 0: Able was I ere I saw Elba.
7602 3: Able was I ere I saw Elba
7630 0: ablewasiereisawelba
7631 1: ablewasiereisawelba
7656 /(?<X>a)(?<=b(?&X))/
7661 /^(?|(abc)|(def))\1/
7675 /^(?|(abc)|(def))(?1)/
7689 /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |b(?<quote> (?<apostrophe>')|(?<realquote>")) ) (?('quote')[a-z]+|[0-9]+)/xJ
7708 /(?:(?1)|B)(A(*F)|C)/
7720 /^(?:(?1)|B)(A(*F)|C)/
7736 /(?:(?1)|B)(A(*ACCEPT)XX|C)D/
7759 /(?(DEFINE)(A))B(?1)C/
7763 /(?(DEFINE)((A)\2))B(?1)C/
7767 /(?<pn> \( ( [^()]++ | (?&pn) )* \) )/x
7825 /^(?&t)(?(DEFINE)(?<t>a\Kb))$/
7829 /^([^()]|\((?1)*\))*$/
7837 /(?P<L1>(?P<L2>0)(?P>L1)|(?P>L2))/
7850 /(?P<L1>(?P<L2>0)|(?P>L2)(?P>L1))/
7864 /--- This one does fail, as expected, in Perl. It needs the complex item at the
7865 end of the pattern. A single letter instead of (B|D) makes it not fail,
7866 which I think is a Perl bug. --- /
7872 /--- Check the use of names for failure ---/
7874 /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K
7882 /--- Force no study, otherwise mark is not seen. The studied version is in
7883 test 2 because it isn't Perl-compatible. ---/
7885 /(*MARK:A)(*SKIP:B)(C|X)/KSS
7893 /^(A(*THEN:A)B|C(*THEN:B)D)/K
7899 /^(?:A(*THEN:A)B|C(*THEN:B)D)/K
7903 /^(?>A(*THEN:A)B|C(*THEN:B)D)/K
7907 /--- This should succeed, as the skip causes bump to offset 1 (the mark). Note
7908 that we have to have something complicated such as (B|Z) at the end because,
7909 for Perl, a simple character somehow causes an unwanted optimization to mess
7910 with the handling of backtracking verbs. ---/
7912 /A(*MARK:A)A+(*SKIP:A)(B|Z) | AC/xK
7916 /--- Test skipping over a non-matching mark. ---/
7918 /A(*MARK:A)A+(*MARK:B)(*SKIP:A)(B|Z) | AC/xK
7922 /--- Check shorthand for MARK ---/
7924 /A(*:A)A+(*SKIP:A)(B|Z) | AC/xK
7928 /--- Don't loop! Force no study, otherwise mark is not seen. ---/
7930 /(*:A)A+(*SKIP:A)(B|Z)/KSS
7934 /--- This should succeed, as a non-existent skip name disables the skip ---/
7936 /A(*MARK:A)A+(*SKIP:B)(B|Z) | AC/xK
7940 /A(*MARK:A)A+(*SKIP:B)(B|Z) | AC(*:B)/xK
7945 /--- COMMIT at the start of a pattern should act like an anchor. Again,
7946 however, we need the complication for Perl. ---/
7948 /(*COMMIT)(A|P)(B|P)(C|P)/
7959 /--- COMMIT inside an atomic group can't stop backtracking over the group. ---/
7961 /(\w+)(?>b(*COMMIT))\w{2}/
7966 /(\w+)b(*COMMIT)\w{2}/
7970 /--- Check opening parens in comment when seeking forward reference. ---/
7972 /(?&t)(?#()(?(DEFINE)(?<t>a))/
7976 /--- COMMIT should override THEN ---/
7978 /(?>(*COMMIT)(?>yes|no)(*THEN)(*F))?/
7982 /(?>(*COMMIT)(yes|no)(*THEN)(*F))?/
8000 /(?P<abn>(?P=abn)xxx|)+/
8024 /^(?&t)*+(?(DEFINE)(?<t>a))\w$/
8032 /^(?&t)*(?(DEFINE)(?<t>a))\w$/
8159 /(foo ( \( ((?:(?> [^()]+ )|(?2))*) \) ) )/x
8160 foo(bar(baz)+baz(bop))
8161 0: foo(bar(baz)+baz(bop))
8162 1: foo(bar(baz)+baz(bop))
8163 2: (bar(baz)+baz(bop))
8164 3: bar(baz)+baz(bop)
8166 /(A (A|B(*ACCEPT)|C) D)(E)/x
8172 /\A.*?(?:a|b(*THEN)c)/
8180 /\A.*?(a|b(*THEN)c)/
8190 /\A.*?(?:a|b(*THEN)c)++/
8198 /\A.*?(a|b(*THEN)c)++/
8208 /\A.*?(?:a|b(*THEN)c|d)/
8221 /(?(?=(a(*ACCEPT)z))a)/
8244 /(?(DEFINE)(a))?b(?1)/
8281 /(?>(?&t)c|(?&t))(?(DEFINE)(?<t>a|b(*PRUNE)c))/
8289 /--- Checking revised (*THEN) handling ---/
8293 /^.*? (a(*THEN)b) c/x
8297 /^.*? (a(*THEN)b|(*F)) c/x
8302 /^.*? ( (a(*THEN)b) | (*F) ) c/x
8308 /^.*? ( (a(*THEN)b) ) c/x
8312 /--- Non-capture ---/
8314 /^.*? (?:a(*THEN)b) c/x
8318 /^.*? (?:a(*THEN)b|(*F)) c/x
8322 /^.*? (?: (?:a(*THEN)b) | (*F) ) c/x
8326 /^.*? (?: (?:a(*THEN)b) ) c/x
8332 /^.*? (?>a(*THEN)b) c/x
8336 /^.*? (?>a(*THEN)b|(*F)) c/x
8340 /^.*? (?> (?>a(*THEN)b) | (*F) ) c/x
8344 /^.*? (?> (?>a(*THEN)b) ) c/x
8348 /--- Possessive capture ---/
8350 /^.*? (a(*THEN)b)++ c/x
8354 /^.*? (a(*THEN)b|(*F))++ c/x
8359 /^.*? ( (a(*THEN)b)++ | (*F) )++ c/x
8365 /^.*? ( (a(*THEN)b)++ )++ c/x
8369 /--- Possessive non-capture ---/
8371 /^.*? (?:a(*THEN)b)++ c/x
8375 /^.*? (?:a(*THEN)b|(*F))++ c/x
8379 /^.*? (?: (?:a(*THEN)b)++ | (*F) )++ c/x
8383 /^.*? (?: (?:a(*THEN)b)++ )++ c/x
8387 /--- Condition assertion ---/
8389 /^(?(?=a(*THEN)b)ab|ac)/
8395 /^.*?(?(?=a)a|b(*THEN)c)/
8399 /^.*?(?:(?(?=a)a|b(*THEN)c)|d)/
8403 /^.*?(?(?=a)a(*THEN)b|c)/
8413 /------------------------------/
8420 /(?>(a)(*:m))/imsxSK
8430 /(?<=(a(*ACCEPT)b))c/
8435 /(?<=(a(*COMMIT)b))c/
8473 /(*MARK:A)(*PRUNE:B)(C|X)/KS
8481 /(*MARK:A)(*PRUNE:B)(C|X)/KSS
8489 /(*MARK:A)(*THEN:B)(C|X)/KS
8497 /(*MARK:A)(*THEN:B)(C|X)/KSY
8505 /(*MARK:A)(*THEN:B)(C|X)/KSS
8513 /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/
8515 /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK
8521 /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK
8525 /A(*:A)A+(*SKIP)(B|Z) | AC/xK
8529 /--- This should fail, as a null name is the same as no name ---/
8531 /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK
8535 /--- A check on what happens after hitting a mark and them bumping along to
8536 something that does not even start. Perl reports tags after the failures here,
8537 though it does not when the individual letters are made into something
8538 more complicated. ---/
8558 /^(A(*THEN:A)B|C(*THEN:B)D)/K
8574 /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K
8590 /--- An empty name does not pass back an empty string. It is the same as if no
8591 name were given. ---/
8593 /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K
8602 /--- PRUNE goes to next bumpalong; COMMIT does not. ---/
8609 /--- Mark names can be duplicated ---/
8638 /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK
8642 /a(*PRUNE:X)bc|qq/KY
8654 /(?=a(*MARK:A)b)..x/K
8663 /(?=a(*MARK:A)b)..(*:Y)x/K
8672 /(?=a(*PRUNE:A)b)..x/K
8681 /(?=a(*PRUNE:A)b)..(*:Y)x/K
8690 /(?=a(*THEN:A)b)..x/K
8699 /(?=a(*THEN:A)b)..(*:Y)x/K
8708 /(another)?(\1?)test/
8714 /(another)?(\1+)test/
8718 /(a(*COMMIT)b){0}a(?1)|aac/
8722 /(?!a(*COMMIT)b)ac|cd/
8772 /(?>.*?)(?<=(abcd)|(wxyz))/
8781 /(?>.*)(?<=(abcd)|(wxyz))/
8798 /-- End of testinput1 --/