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 the 8-bit, 16-bit,
|
3 |
and 32-bit PCRE libraries. --/
|
4 |
|
5 |
< forbid 89?=ABCDEFfGILMNPTUWXZ<
|
6 |
|
7 |
/the quick brown fox/
|
8 |
the quick brown fox
|
9 |
The quick brown FOX
|
10 |
What do you know about the quick brown fox?
|
11 |
What do you know about THE QUICK BROWN FOX?
|
12 |
|
13 |
/The quick brown fox/i
|
14 |
the quick brown fox
|
15 |
The quick brown FOX
|
16 |
What do you know about the quick brown fox?
|
17 |
What do you know about THE QUICK BROWN FOX?
|
18 |
|
19 |
/abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
|
20 |
abcd\t\n\r\f\a\e9;\$\\?caxyz
|
21 |
|
22 |
/a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
|
23 |
abxyzpqrrrabbxyyyypqAzz
|
24 |
abxyzpqrrrabbxyyyypqAzz
|
25 |
aabxyzpqrrrabbxyyyypqAzz
|
26 |
aaabxyzpqrrrabbxyyyypqAzz
|
27 |
aaaabxyzpqrrrabbxyyyypqAzz
|
28 |
abcxyzpqrrrabbxyyyypqAzz
|
29 |
aabcxyzpqrrrabbxyyyypqAzz
|
30 |
aaabcxyzpqrrrabbxyyyypAzz
|
31 |
aaabcxyzpqrrrabbxyyyypqAzz
|
32 |
aaabcxyzpqrrrabbxyyyypqqAzz
|
33 |
aaabcxyzpqrrrabbxyyyypqqqAzz
|
34 |
aaabcxyzpqrrrabbxyyyypqqqqAzz
|
35 |
aaabcxyzpqrrrabbxyyyypqqqqqAzz
|
36 |
aaabcxyzpqrrrabbxyyyypqqqqqqAzz
|
37 |
aaaabcxyzpqrrrabbxyyyypqAzz
|
38 |
abxyzzpqrrrabbxyyyypqAzz
|
39 |
aabxyzzzpqrrrabbxyyyypqAzz
|
40 |
aaabxyzzzzpqrrrabbxyyyypqAzz
|
41 |
aaaabxyzzzzpqrrrabbxyyyypqAzz
|
42 |
abcxyzzpqrrrabbxyyyypqAzz
|
43 |
aabcxyzzzpqrrrabbxyyyypqAzz
|
44 |
aaabcxyzzzzpqrrrabbxyyyypqAzz
|
45 |
aaaabcxyzzzzpqrrrabbxyyyypqAzz
|
46 |
aaaabcxyzzzzpqrrrabbbxyyyypqAzz
|
47 |
aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
|
48 |
aaabcxyzpqrrrabbxyyyypABzz
|
49 |
aaabcxyzpqrrrabbxyyyypABBzz
|
50 |
>>>aaabxyzpqrrrabbxyyyypqAzz
|
51 |
>aaaabxyzpqrrrabbxyyyypqAzz
|
52 |
>>>>abcxyzpqrrrabbxyyyypqAzz
|
53 |
*** Failers
|
54 |
abxyzpqrrabbxyyyypqAzz
|
55 |
abxyzpqrrrrabbxyyyypqAzz
|
56 |
abxyzpqrrrabxyyyypqAzz
|
57 |
aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz
|
58 |
aaaabcxyzzzzpqrrrabbbxyyypqAzz
|
59 |
aaabcxyzpqrrrabbxyyyypqqqqqqqAzz
|
60 |
|
61 |
/^(abc){1,2}zz/
|
62 |
abczz
|
63 |
abcabczz
|
64 |
*** Failers
|
65 |
zz
|
66 |
abcabcabczz
|
67 |
>>abczz
|
68 |
|
69 |
/^(b+?|a){1,2}?c/
|
70 |
bc
|
71 |
bbc
|
72 |
bbbc
|
73 |
bac
|
74 |
bbac
|
75 |
aac
|
76 |
abbbbbbbbbbbc
|
77 |
bbbbbbbbbbbac
|
78 |
*** Failers
|
79 |
aaac
|
80 |
abbbbbbbbbbbac
|
81 |
|
82 |
/^(b+|a){1,2}c/
|
83 |
bc
|
84 |
bbc
|
85 |
bbbc
|
86 |
bac
|
87 |
bbac
|
88 |
aac
|
89 |
abbbbbbbbbbbc
|
90 |
bbbbbbbbbbbac
|
91 |
*** Failers
|
92 |
aaac
|
93 |
abbbbbbbbbbbac
|
94 |
|
95 |
/^(b+|a){1,2}?bc/
|
96 |
bbc
|
97 |
|
98 |
/^(b*|ba){1,2}?bc/
|
99 |
babc
|
100 |
bbabc
|
101 |
bababc
|
102 |
*** Failers
|
103 |
bababbc
|
104 |
babababc
|
105 |
|
106 |
/^(ba|b*){1,2}?bc/
|
107 |
babc
|
108 |
bbabc
|
109 |
bababc
|
110 |
*** Failers
|
111 |
bababbc
|
112 |
babababc
|
113 |
|
114 |
/^\ca\cA\c[;\c:/
|
115 |
\x01\x01\e;z
|
116 |
|
117 |
/^[ab\]cde]/
|
118 |
athing
|
119 |
bthing
|
120 |
]thing
|
121 |
cthing
|
122 |
dthing
|
123 |
ething
|
124 |
*** Failers
|
125 |
fthing
|
126 |
[thing
|
127 |
\\thing
|
128 |
|
129 |
/^[]cde]/
|
130 |
]thing
|
131 |
cthing
|
132 |
dthing
|
133 |
ething
|
134 |
*** Failers
|
135 |
athing
|
136 |
fthing
|
137 |
|
138 |
/^[^ab\]cde]/
|
139 |
fthing
|
140 |
[thing
|
141 |
\\thing
|
142 |
*** Failers
|
143 |
athing
|
144 |
bthing
|
145 |
]thing
|
146 |
cthing
|
147 |
dthing
|
148 |
ething
|
149 |
|
150 |
/^[^]cde]/
|
151 |
athing
|
152 |
fthing
|
153 |
*** Failers
|
154 |
]thing
|
155 |
cthing
|
156 |
dthing
|
157 |
ething
|
158 |
|
159 |
/^\/
|
160 |
|
161 |
|
162 |
/^/
|
163 |
|
164 |
|
165 |
/^[0-9]+$/
|
166 |
0
|
167 |
1
|
168 |
2
|
169 |
3
|
170 |
4
|
171 |
5
|
172 |
6
|
173 |
7
|
174 |
8
|
175 |
9
|
176 |
10
|
177 |
100
|
178 |
*** Failers
|
179 |
abc
|
180 |
|
181 |
/^.*nter/
|
182 |
enter
|
183 |
inter
|
184 |
uponter
|
185 |
|
186 |
/^xxx[0-9]+$/
|
187 |
xxx0
|
188 |
xxx1234
|
189 |
*** Failers
|
190 |
xxx
|
191 |
|
192 |
/^.+[0-9][0-9][0-9]$/
|
193 |
x123
|
194 |
xx123
|
195 |
123456
|
196 |
*** Failers
|
197 |
123
|
198 |
x1234
|
199 |
|
200 |
/^.+?[0-9][0-9][0-9]$/
|
201 |
x123
|
202 |
xx123
|
203 |
123456
|
204 |
*** Failers
|
205 |
123
|
206 |
x1234
|
207 |
|
208 |
/^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/
|
209 |
abc!pqr=apquxz.ixr.zzz.ac.uk
|
210 |
*** Failers
|
211 |
!pqr=apquxz.ixr.zzz.ac.uk
|
212 |
abc!=apquxz.ixr.zzz.ac.uk
|
213 |
abc!pqr=apquxz:ixr.zzz.ac.uk
|
214 |
abc!pqr=apquxz.ixr.zzz.ac.ukk
|
215 |
|
216 |
/:/
|
217 |
Well, we need a colon: somewhere
|
218 |
*** Fail if we don't
|
219 |
|
220 |
/([\da-f:]+)$/i
|
221 |
0abc
|
222 |
abc
|
223 |
fed
|
224 |
E
|
225 |
::
|
226 |
5f03:12C0::932e
|
227 |
fed def
|
228 |
Any old stuff
|
229 |
*** Failers
|
230 |
0zzz
|
231 |
gzzz
|
232 |
fed\x20
|
233 |
Any old rubbish
|
234 |
|
235 |
/^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
|
236 |
.1.2.3
|
237 |
A.12.123.0
|
238 |
*** Failers
|
239 |
.1.2.3333
|
240 |
1.2.3
|
241 |
1234.2.3
|
242 |
|
243 |
/^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
|
244 |
1 IN SOA non-sp1 non-sp2(
|
245 |
1 IN SOA non-sp1 non-sp2 (
|
246 |
*** Failers
|
247 |
1IN SOA non-sp1 non-sp2(
|
248 |
|
249 |
/^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/
|
250 |
a.
|
251 |
Z.
|
252 |
2.
|
253 |
ab-c.pq-r.
|
254 |
sxk.zzz.ac.uk.
|
255 |
x-.y-.
|
256 |
*** Failers
|
257 |
-abc.peq.
|
258 |
|
259 |
/^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/
|
260 |
*.a
|
261 |
*.b0-a
|
262 |
*.c3-b.c
|
263 |
*.c-a.b-c
|
264 |
*** Failers
|
265 |
*.0
|
266 |
*.a-
|
267 |
*.a-b.c-
|
268 |
*.c-a.0-c
|
269 |
|
270 |
/^(?=ab(de))(abd)(e)/
|
271 |
abde
|
272 |
|
273 |
/^(?!(ab)de|x)(abd)(f)/
|
274 |
abdf
|
275 |
|
276 |
/^(?=(ab(cd)))(ab)/
|
277 |
abcd
|
278 |
|
279 |
/^[\da-f](\.[\da-f])*$/i
|
280 |
a.b.c.d
|
281 |
A.B.C.D
|
282 |
a.b.c.1.2.3.C
|
283 |
|
284 |
/^\".*\"\s*(;.*)?$/
|
285 |
\"1234\"
|
286 |
\"abcd\" ;
|
287 |
\"\" ; rhubarb
|
288 |
*** Failers
|
289 |
\"1234\" : things
|
290 |
|
291 |
/^$/
|
292 |
\
|
293 |
*** Failers
|
294 |
|
295 |
/ ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/x
|
296 |
ab c
|
297 |
*** Failers
|
298 |
abc
|
299 |
ab cde
|
300 |
|
301 |
/(?x) ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/
|
302 |
ab c
|
303 |
*** Failers
|
304 |
abc
|
305 |
ab cde
|
306 |
|
307 |
/^ a\ b[c ]d $/x
|
308 |
a bcd
|
309 |
a b d
|
310 |
*** Failers
|
311 |
abcd
|
312 |
ab d
|
313 |
|
314 |
/^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
|
315 |
abcdefhijklm
|
316 |
|
317 |
/^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
|
318 |
abcdefhijklm
|
319 |
|
320 |
/^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
|
321 |
a+ Z0+\x08\n\x1d\x12
|
322 |
|
323 |
/^[.^$|()*+?{,}]+/
|
324 |
.^\$(*+)|{?,?}
|
325 |
|
326 |
/^a*\w/
|
327 |
z
|
328 |
az
|
329 |
aaaz
|
330 |
a
|
331 |
aa
|
332 |
aaaa
|
333 |
a+
|
334 |
aa+
|
335 |
|
336 |
/^a*?\w/
|
337 |
z
|
338 |
az
|
339 |
aaaz
|
340 |
a
|
341 |
aa
|
342 |
aaaa
|
343 |
a+
|
344 |
aa+
|
345 |
|
346 |
/^a+\w/
|
347 |
az
|
348 |
aaaz
|
349 |
aa
|
350 |
aaaa
|
351 |
aa+
|
352 |
|
353 |
/^a+?\w/
|
354 |
az
|
355 |
aaaz
|
356 |
aa
|
357 |
aaaa
|
358 |
aa+
|
359 |
|
360 |
/^\d{8}\w{2,}/
|
361 |
1234567890
|
362 |
12345678ab
|
363 |
12345678__
|
364 |
*** Failers
|
365 |
1234567
|
366 |
|
367 |
/^[aeiou\d]{4,5}$/
|
368 |
uoie
|
369 |
1234
|
370 |
12345
|
371 |
aaaaa
|
372 |
*** Failers
|
373 |
123456
|
374 |
|
375 |
/^[aeiou\d]{4,5}?/
|
376 |
uoie
|
377 |
1234
|
378 |
12345
|
379 |
aaaaa
|
380 |
123456
|
381 |
|
382 |
/\A(abc|def)=(\1){2,3}\Z/
|
383 |
abc=abcabc
|
384 |
def=defdefdef
|
385 |
*** Failers
|
386 |
abc=defdef
|
387 |
|
388 |
/^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\11*(\3\4)\1(?#)2$/
|
389 |
abcdefghijkcda2
|
390 |
abcdefghijkkkkcda2
|
391 |
|
392 |
/(cat(a(ract|tonic)|erpillar)) \1()2(3)/
|
393 |
cataract cataract23
|
394 |
catatonic catatonic23
|
395 |
caterpillar caterpillar23
|
396 |
|
397 |
|
398 |
/^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]/
|
399 |
From abcd Mon Sep 01 12:33:02 1997
|
400 |
|
401 |
/^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/
|
402 |
From abcd Mon Sep 01 12:33:02 1997
|
403 |
From abcd Mon Sep 1 12:33:02 1997
|
404 |
*** Failers
|
405 |
From abcd Sep 01 12:33:02 1997
|
406 |
|
407 |
/^12.34/s
|
408 |
12\n34
|
409 |
12\r34
|
410 |
|
411 |
/\w+(?=\t)/
|
412 |
the quick brown\t fox
|
413 |
|
414 |
/foo(?!bar)(.*)/
|
415 |
foobar is foolish see?
|
416 |
|
417 |
/(?:(?!foo)...|^.{0,2})bar(.*)/
|
418 |
foobar crowbar etc
|
419 |
barrel
|
420 |
2barrel
|
421 |
A barrel
|
422 |
|
423 |
/^(\D*)(?=\d)(?!123)/
|
424 |
abc456
|
425 |
*** Failers
|
426 |
abc123
|
427 |
|
428 |
/^1234(?# test newlines
|
429 |
inside)/
|
430 |
1234
|
431 |
|
432 |
/^1234 #comment in extended re
|
433 |
/x
|
434 |
1234
|
435 |
|
436 |
/#rhubarb
|
437 |
abcd/x
|
438 |
abcd
|
439 |
|
440 |
/^abcd#rhubarb/x
|
441 |
abcd
|
442 |
|
443 |
/^(a)\1{2,3}(.)/
|
444 |
aaab
|
445 |
aaaab
|
446 |
aaaaab
|
447 |
aaaaaab
|
448 |
|
449 |
/(?!^)abc/
|
450 |
the abc
|
451 |
*** Failers
|
452 |
abc
|
453 |
|
454 |
/(?=^)abc/
|
455 |
abc
|
456 |
*** Failers
|
457 |
the abc
|
458 |
|
459 |
/^[ab]{1,3}(ab*|b)/
|
460 |
aabbbbb
|
461 |
|
462 |
/^[ab]{1,3}?(ab*|b)/
|
463 |
aabbbbb
|
464 |
|
465 |
/^[ab]{1,3}?(ab*?|b)/
|
466 |
aabbbbb
|
467 |
|
468 |
/^[ab]{1,3}(ab*?|b)/
|
469 |
aabbbbb
|
470 |
|
471 |
/ (?: [\040\t] | \(
|
472 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
473 |
\) )* # optional leading comment
|
474 |
(?: (?:
|
475 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
476 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
477 |
|
|
478 |
" (?: # opening quote...
|
479 |
[^\\\x80-\xff\n\015"] # Anything except backslash and quote
|
480 |
| # or
|
481 |
\\ [^\x80-\xff] # Escaped something (something != CR)
|
482 |
)* " # closing quote
|
483 |
) # initial word
|
484 |
(?: (?: [\040\t] | \(
|
485 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
486 |
\) )* \. (?: [\040\t] | \(
|
487 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
488 |
\) )* (?:
|
489 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
490 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
491 |
|
|
492 |
" (?: # opening quote...
|
493 |
[^\\\x80-\xff\n\015"] # Anything except backslash and quote
|
494 |
| # or
|
495 |
\\ [^\x80-\xff] # Escaped something (something != CR)
|
496 |
)* " # closing quote
|
497 |
) )* # further okay, if led by a period
|
498 |
(?: [\040\t] | \(
|
499 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
500 |
\) )* @ (?: [\040\t] | \(
|
501 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
502 |
\) )* (?:
|
503 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
504 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
505 |
| \[ # [
|
506 |
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
|
507 |
\] # ]
|
508 |
) # initial subdomain
|
509 |
(?: #
|
510 |
(?: [\040\t] | \(
|
511 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
512 |
\) )* \. # if led by a period...
|
513 |
(?: [\040\t] | \(
|
514 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
515 |
\) )* (?:
|
516 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
517 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
518 |
| \[ # [
|
519 |
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
|
520 |
\] # ]
|
521 |
) # ...further okay
|
522 |
)*
|
523 |
# address
|
524 |
| # or
|
525 |
(?:
|
526 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
527 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
528 |
|
|
529 |
" (?: # opening quote...
|
530 |
[^\\\x80-\xff\n\015"] # Anything except backslash and quote
|
531 |
| # or
|
532 |
\\ [^\x80-\xff] # Escaped something (something != CR)
|
533 |
)* " # closing quote
|
534 |
) # one word, optionally followed by....
|
535 |
(?:
|
536 |
[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or...
|
537 |
\(
|
538 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
539 |
\) | # comments, or...
|
540 |
|
541 |
" (?: # opening quote...
|
542 |
[^\\\x80-\xff\n\015"] # Anything except backslash and quote
|
543 |
| # or
|
544 |
\\ [^\x80-\xff] # Escaped something (something != CR)
|
545 |
)* " # closing quote
|
546 |
# quoted strings
|
547 |
)*
|
548 |
< (?: [\040\t] | \(
|
549 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
550 |
\) )* # leading <
|
551 |
(?: @ (?: [\040\t] | \(
|
552 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
553 |
\) )* (?:
|
554 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
555 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
556 |
| \[ # [
|
557 |
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
|
558 |
\] # ]
|
559 |
) # initial subdomain
|
560 |
(?: #
|
561 |
(?: [\040\t] | \(
|
562 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
563 |
\) )* \. # if led by a period...
|
564 |
(?: [\040\t] | \(
|
565 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
566 |
\) )* (?:
|
567 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
568 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
569 |
| \[ # [
|
570 |
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
|
571 |
\] # ]
|
572 |
) # ...further okay
|
573 |
)*
|
574 |
|
575 |
(?: (?: [\040\t] | \(
|
576 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
577 |
\) )* , (?: [\040\t] | \(
|
578 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
579 |
\) )* @ (?: [\040\t] | \(
|
580 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
581 |
\) )* (?:
|
582 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
583 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
584 |
| \[ # [
|
585 |
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
|
586 |
\] # ]
|
587 |
) # initial subdomain
|
588 |
(?: #
|
589 |
(?: [\040\t] | \(
|
590 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
591 |
\) )* \. # if led by a period...
|
592 |
(?: [\040\t] | \(
|
593 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
594 |
\) )* (?:
|
595 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
596 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
597 |
| \[ # [
|
598 |
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
|
599 |
\] # ]
|
600 |
) # ...further okay
|
601 |
)*
|
602 |
)* # further okay, if led by comma
|
603 |
: # closing colon
|
604 |
(?: [\040\t] | \(
|
605 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
606 |
\) )* )? # optional route
|
607 |
(?:
|
608 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
609 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
610 |
|
|
611 |
" (?: # opening quote...
|
612 |
[^\\\x80-\xff\n\015"] # Anything except backslash and quote
|
613 |
| # or
|
614 |
\\ [^\x80-\xff] # Escaped something (something != CR)
|
615 |
)* " # closing quote
|
616 |
) # initial word
|
617 |
(?: (?: [\040\t] | \(
|
618 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
619 |
\) )* \. (?: [\040\t] | \(
|
620 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
621 |
\) )* (?:
|
622 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
623 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
624 |
|
|
625 |
" (?: # opening quote...
|
626 |
[^\\\x80-\xff\n\015"] # Anything except backslash and quote
|
627 |
| # or
|
628 |
\\ [^\x80-\xff] # Escaped something (something != CR)
|
629 |
)* " # closing quote
|
630 |
) )* # further okay, if led by a period
|
631 |
(?: [\040\t] | \(
|
632 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
633 |
\) )* @ (?: [\040\t] | \(
|
634 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
635 |
\) )* (?:
|
636 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
637 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
638 |
| \[ # [
|
639 |
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
|
640 |
\] # ]
|
641 |
) # initial subdomain
|
642 |
(?: #
|
643 |
(?: [\040\t] | \(
|
644 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
645 |
\) )* \. # if led by a period...
|
646 |
(?: [\040\t] | \(
|
647 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
648 |
\) )* (?:
|
649 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
650 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
651 |
| \[ # [
|
652 |
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
|
653 |
\] # ]
|
654 |
) # ...further okay
|
655 |
)*
|
656 |
# address spec
|
657 |
(?: [\040\t] | \(
|
658 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
659 |
\) )* > # trailing >
|
660 |
# name and address
|
661 |
) (?: [\040\t] | \(
|
662 |
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
|
663 |
\) )* # optional trailing comment
|
664 |
/x
|
665 |
Alan Other <user\@dom.ain>
|
666 |
<user\@dom.ain>
|
667 |
user\@dom.ain
|
668 |
\"A. Other\" <user.1234\@dom.ain> (a comment)
|
669 |
A. Other <user.1234\@dom.ain> (a comment)
|
670 |
\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
|
671 |
A missing angle <user\@some.where
|
672 |
*** Failers
|
673 |
The quick brown fox
|
674 |
|
675 |
/[\040\t]* # Nab whitespace.
|
676 |
(?:
|
677 |
\( # (
|
678 |
[^\\\x80-\xff\n\015()] * # normal*
|
679 |
(?: # (
|
680 |
(?: \\ [^\x80-\xff] |
|
681 |
\( # (
|
682 |
[^\\\x80-\xff\n\015()] * # normal*
|
683 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
684 |
\) # )
|
685 |
) # special
|
686 |
[^\\\x80-\xff\n\015()] * # normal*
|
687 |
)* # )*
|
688 |
\) # )
|
689 |
[\040\t]* )* # If comment found, allow more spaces.
|
690 |
# optional leading comment
|
691 |
(?:
|
692 |
(?:
|
693 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
694 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
695 |
# Atom
|
696 |
| # or
|
697 |
" # "
|
698 |
[^\\\x80-\xff\n\015"] * # normal
|
699 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
|
700 |
" # "
|
701 |
# Quoted string
|
702 |
)
|
703 |
[\040\t]* # Nab whitespace.
|
704 |
(?:
|
705 |
\( # (
|
706 |
[^\\\x80-\xff\n\015()] * # normal*
|
707 |
(?: # (
|
708 |
(?: \\ [^\x80-\xff] |
|
709 |
\( # (
|
710 |
[^\\\x80-\xff\n\015()] * # normal*
|
711 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
712 |
\) # )
|
713 |
) # special
|
714 |
[^\\\x80-\xff\n\015()] * # normal*
|
715 |
)* # )*
|
716 |
\) # )
|
717 |
[\040\t]* )* # If comment found, allow more spaces.
|
718 |
(?:
|
719 |
\.
|
720 |
[\040\t]* # Nab whitespace.
|
721 |
(?:
|
722 |
\( # (
|
723 |
[^\\\x80-\xff\n\015()] * # normal*
|
724 |
(?: # (
|
725 |
(?: \\ [^\x80-\xff] |
|
726 |
\( # (
|
727 |
[^\\\x80-\xff\n\015()] * # normal*
|
728 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
729 |
\) # )
|
730 |
) # special
|
731 |
[^\\\x80-\xff\n\015()] * # normal*
|
732 |
)* # )*
|
733 |
\) # )
|
734 |
[\040\t]* )* # If comment found, allow more spaces.
|
735 |
(?:
|
736 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
737 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
738 |
# Atom
|
739 |
| # or
|
740 |
" # "
|
741 |
[^\\\x80-\xff\n\015"] * # normal
|
742 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
|
743 |
" # "
|
744 |
# Quoted string
|
745 |
)
|
746 |
[\040\t]* # Nab whitespace.
|
747 |
(?:
|
748 |
\( # (
|
749 |
[^\\\x80-\xff\n\015()] * # normal*
|
750 |
(?: # (
|
751 |
(?: \\ [^\x80-\xff] |
|
752 |
\( # (
|
753 |
[^\\\x80-\xff\n\015()] * # normal*
|
754 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
755 |
\) # )
|
756 |
) # special
|
757 |
[^\\\x80-\xff\n\015()] * # normal*
|
758 |
)* # )*
|
759 |
\) # )
|
760 |
[\040\t]* )* # If comment found, allow more spaces.
|
761 |
# additional words
|
762 |
)*
|
763 |
@
|
764 |
[\040\t]* # Nab whitespace.
|
765 |
(?:
|
766 |
\( # (
|
767 |
[^\\\x80-\xff\n\015()] * # normal*
|
768 |
(?: # (
|
769 |
(?: \\ [^\x80-\xff] |
|
770 |
\( # (
|
771 |
[^\\\x80-\xff\n\015()] * # normal*
|
772 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
773 |
\) # )
|
774 |
) # special
|
775 |
[^\\\x80-\xff\n\015()] * # normal*
|
776 |
)* # )*
|
777 |
\) # )
|
778 |
[\040\t]* )* # If comment found, allow more spaces.
|
779 |
(?:
|
780 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
781 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
782 |
|
|
783 |
\[ # [
|
784 |
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
|
785 |
\] # ]
|
786 |
)
|
787 |
[\040\t]* # Nab whitespace.
|
788 |
(?:
|
789 |
\( # (
|
790 |
[^\\\x80-\xff\n\015()] * # normal*
|
791 |
(?: # (
|
792 |
(?: \\ [^\x80-\xff] |
|
793 |
\( # (
|
794 |
[^\\\x80-\xff\n\015()] * # normal*
|
795 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
796 |
\) # )
|
797 |
) # special
|
798 |
[^\\\x80-\xff\n\015()] * # normal*
|
799 |
)* # )*
|
800 |
\) # )
|
801 |
[\040\t]* )* # If comment found, allow more spaces.
|
802 |
# optional trailing comments
|
803 |
(?:
|
804 |
\.
|
805 |
[\040\t]* # Nab whitespace.
|
806 |
(?:
|
807 |
\( # (
|
808 |
[^\\\x80-\xff\n\015()] * # normal*
|
809 |
(?: # (
|
810 |
(?: \\ [^\x80-\xff] |
|
811 |
\( # (
|
812 |
[^\\\x80-\xff\n\015()] * # normal*
|
813 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
814 |
\) # )
|
815 |
) # special
|
816 |
[^\\\x80-\xff\n\015()] * # normal*
|
817 |
)* # )*
|
818 |
\) # )
|
819 |
[\040\t]* )* # If comment found, allow more spaces.
|
820 |
(?:
|
821 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
822 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
823 |
|
|
824 |
\[ # [
|
825 |
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
|
826 |
\] # ]
|
827 |
)
|
828 |
[\040\t]* # Nab whitespace.
|
829 |
(?:
|
830 |
\( # (
|
831 |
[^\\\x80-\xff\n\015()] * # normal*
|
832 |
(?: # (
|
833 |
(?: \\ [^\x80-\xff] |
|
834 |
\( # (
|
835 |
[^\\\x80-\xff\n\015()] * # normal*
|
836 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
837 |
\) # )
|
838 |
) # special
|
839 |
[^\\\x80-\xff\n\015()] * # normal*
|
840 |
)* # )*
|
841 |
\) # )
|
842 |
[\040\t]* )* # If comment found, allow more spaces.
|
843 |
# optional trailing comments
|
844 |
)*
|
845 |
# address
|
846 |
| # or
|
847 |
(?:
|
848 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
849 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
850 |
# Atom
|
851 |
| # or
|
852 |
" # "
|
853 |
[^\\\x80-\xff\n\015"] * # normal
|
854 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
|
855 |
" # "
|
856 |
# Quoted string
|
857 |
)
|
858 |
# leading word
|
859 |
[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # "normal" atoms and or spaces
|
860 |
(?:
|
861 |
(?:
|
862 |
\( # (
|
863 |
[^\\\x80-\xff\n\015()] * # normal*
|
864 |
(?: # (
|
865 |
(?: \\ [^\x80-\xff] |
|
866 |
\( # (
|
867 |
[^\\\x80-\xff\n\015()] * # normal*
|
868 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
869 |
\) # )
|
870 |
) # special
|
871 |
[^\\\x80-\xff\n\015()] * # normal*
|
872 |
)* # )*
|
873 |
\) # )
|
874 |
|
|
875 |
" # "
|
876 |
[^\\\x80-\xff\n\015"] * # normal
|
877 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
|
878 |
" # "
|
879 |
) # "special" comment or quoted string
|
880 |
[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # more "normal"
|
881 |
)*
|
882 |
<
|
883 |
[\040\t]* # Nab whitespace.
|
884 |
(?:
|
885 |
\( # (
|
886 |
[^\\\x80-\xff\n\015()] * # normal*
|
887 |
(?: # (
|
888 |
(?: \\ [^\x80-\xff] |
|
889 |
\( # (
|
890 |
[^\\\x80-\xff\n\015()] * # normal*
|
891 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
892 |
\) # )
|
893 |
) # special
|
894 |
[^\\\x80-\xff\n\015()] * # normal*
|
895 |
)* # )*
|
896 |
\) # )
|
897 |
[\040\t]* )* # If comment found, allow more spaces.
|
898 |
# <
|
899 |
(?:
|
900 |
@
|
901 |
[\040\t]* # Nab whitespace.
|
902 |
(?:
|
903 |
\( # (
|
904 |
[^\\\x80-\xff\n\015()] * # normal*
|
905 |
(?: # (
|
906 |
(?: \\ [^\x80-\xff] |
|
907 |
\( # (
|
908 |
[^\\\x80-\xff\n\015()] * # normal*
|
909 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
910 |
\) # )
|
911 |
) # special
|
912 |
[^\\\x80-\xff\n\015()] * # normal*
|
913 |
)* # )*
|
914 |
\) # )
|
915 |
[\040\t]* )* # If comment found, allow more spaces.
|
916 |
(?:
|
917 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
918 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
919 |
|
|
920 |
\[ # [
|
921 |
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
|
922 |
\] # ]
|
923 |
)
|
924 |
[\040\t]* # Nab whitespace.
|
925 |
(?:
|
926 |
\( # (
|
927 |
[^\\\x80-\xff\n\015()] * # normal*
|
928 |
(?: # (
|
929 |
(?: \\ [^\x80-\xff] |
|
930 |
\( # (
|
931 |
[^\\\x80-\xff\n\015()] * # normal*
|
932 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
933 |
\) # )
|
934 |
) # special
|
935 |
[^\\\x80-\xff\n\015()] * # normal*
|
936 |
)* # )*
|
937 |
\) # )
|
938 |
[\040\t]* )* # If comment found, allow more spaces.
|
939 |
# optional trailing comments
|
940 |
(?:
|
941 |
\.
|
942 |
[\040\t]* # Nab whitespace.
|
943 |
(?:
|
944 |
\( # (
|
945 |
[^\\\x80-\xff\n\015()] * # normal*
|
946 |
(?: # (
|
947 |
(?: \\ [^\x80-\xff] |
|
948 |
\( # (
|
949 |
[^\\\x80-\xff\n\015()] * # normal*
|
950 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
951 |
\) # )
|
952 |
) # special
|
953 |
[^\\\x80-\xff\n\015()] * # normal*
|
954 |
)* # )*
|
955 |
\) # )
|
956 |
[\040\t]* )* # If comment found, allow more spaces.
|
957 |
(?:
|
958 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
959 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
960 |
|
|
961 |
\[ # [
|
962 |
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
|
963 |
\] # ]
|
964 |
)
|
965 |
[\040\t]* # Nab whitespace.
|
966 |
(?:
|
967 |
\( # (
|
968 |
[^\\\x80-\xff\n\015()] * # normal*
|
969 |
(?: # (
|
970 |
(?: \\ [^\x80-\xff] |
|
971 |
\( # (
|
972 |
[^\\\x80-\xff\n\015()] * # normal*
|
973 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
974 |
\) # )
|
975 |
) # special
|
976 |
[^\\\x80-\xff\n\015()] * # normal*
|
977 |
)* # )*
|
978 |
\) # )
|
979 |
[\040\t]* )* # If comment found, allow more spaces.
|
980 |
# optional trailing comments
|
981 |
)*
|
982 |
(?: ,
|
983 |
[\040\t]* # Nab whitespace.
|
984 |
(?:
|
985 |
\( # (
|
986 |
[^\\\x80-\xff\n\015()] * # normal*
|
987 |
(?: # (
|
988 |
(?: \\ [^\x80-\xff] |
|
989 |
\( # (
|
990 |
[^\\\x80-\xff\n\015()] * # normal*
|
991 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
992 |
\) # )
|
993 |
) # special
|
994 |
[^\\\x80-\xff\n\015()] * # normal*
|
995 |
)* # )*
|
996 |
\) # )
|
997 |
[\040\t]* )* # If comment found, allow more spaces.
|
998 |
@
|
999 |
[\040\t]* # Nab whitespace.
|
1000 |
(?:
|
1001 |
\( # (
|
1002 |
[^\\\x80-\xff\n\015()] * # normal*
|
1003 |
(?: # (
|
1004 |
(?: \\ [^\x80-\xff] |
|
1005 |
\( # (
|
1006 |
[^\\\x80-\xff\n\015()] * # normal*
|
1007 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
1008 |
\) # )
|
1009 |
) # special
|
1010 |
[^\\\x80-\xff\n\015()] * # normal*
|
1011 |
)* # )*
|
1012 |
\) # )
|
1013 |
[\040\t]* )* # If comment found, allow more spaces.
|
1014 |
(?:
|
1015 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
1016 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
1017 |
|
|
1018 |
\[ # [
|
1019 |
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
|
1020 |
\] # ]
|
1021 |
)
|
1022 |
[\040\t]* # Nab whitespace.
|
1023 |
(?:
|
1024 |
\( # (
|
1025 |
[^\\\x80-\xff\n\015()] * # normal*
|
1026 |
(?: # (
|
1027 |
(?: \\ [^\x80-\xff] |
|
1028 |
\( # (
|
1029 |
[^\\\x80-\xff\n\015()] * # normal*
|
1030 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
1031 |
\) # )
|
1032 |
) # special
|
1033 |
[^\\\x80-\xff\n\015()] * # normal*
|
1034 |
)* # )*
|
1035 |
\) # )
|
1036 |
[\040\t]* )* # If comment found, allow more spaces.
|
1037 |
# optional trailing comments
|
1038 |
(?:
|
1039 |
\.
|
1040 |
[\040\t]* # Nab whitespace.
|
1041 |
(?:
|
1042 |
\( # (
|
1043 |
[^\\\x80-\xff\n\015()] * # normal*
|
1044 |
(?: # (
|
1045 |
(?: \\ [^\x80-\xff] |
|
1046 |
\( # (
|
1047 |
[^\\\x80-\xff\n\015()] * # normal*
|
1048 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
1049 |
\) # )
|
1050 |
) # special
|
1051 |
[^\\\x80-\xff\n\015()] * # normal*
|
1052 |
)* # )*
|
1053 |
\) # )
|
1054 |
[\040\t]* )* # If comment found, allow more spaces.
|
1055 |
(?:
|
1056 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
1057 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
1058 |
|
|
1059 |
\[ # [
|
1060 |
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
|
1061 |
\] # ]
|
1062 |
)
|
1063 |
[\040\t]* # Nab whitespace.
|
1064 |
(?:
|
1065 |
\( # (
|
1066 |
[^\\\x80-\xff\n\015()] * # normal*
|
1067 |
(?: # (
|
1068 |
(?: \\ [^\x80-\xff] |
|
1069 |
\( # (
|
1070 |
[^\\\x80-\xff\n\015()] * # normal*
|
1071 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
1072 |
\) # )
|
1073 |
) # special
|
1074 |
[^\\\x80-\xff\n\015()] * # normal*
|
1075 |
)* # )*
|
1076 |
\) # )
|
1077 |
[\040\t]* )* # If comment found, allow more spaces.
|
1078 |
# optional trailing comments
|
1079 |
)*
|
1080 |
)* # additional domains
|
1081 |
:
|
1082 |
[\040\t]* # Nab whitespace.
|
1083 |
(?:
|
1084 |
\( # (
|
1085 |
[^\\\x80-\xff\n\015()] * # normal*
|
1086 |
(?: # (
|
1087 |
(?: \\ [^\x80-\xff] |
|
1088 |
\( # (
|
1089 |
[^\\\x80-\xff\n\015()] * # normal*
|
1090 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
1091 |
\) # )
|
1092 |
) # special
|
1093 |
[^\\\x80-\xff\n\015()] * # normal*
|
1094 |
)* # )*
|
1095 |
\) # )
|
1096 |
[\040\t]* )* # If comment found, allow more spaces.
|
1097 |
# optional trailing comments
|
1098 |
)? # optional route
|
1099 |
(?:
|
1100 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
1101 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
1102 |
# Atom
|
1103 |
| # or
|
1104 |
" # "
|
1105 |
[^\\\x80-\xff\n\015"] * # normal
|
1106 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
|
1107 |
" # "
|
1108 |
# Quoted string
|
1109 |
)
|
1110 |
[\040\t]* # Nab whitespace.
|
1111 |
(?:
|
1112 |
\( # (
|
1113 |
[^\\\x80-\xff\n\015()] * # normal*
|
1114 |
(?: # (
|
1115 |
(?: \\ [^\x80-\xff] |
|
1116 |
\( # (
|
1117 |
[^\\\x80-\xff\n\015()] * # normal*
|
1118 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
1119 |
\) # )
|
1120 |
) # special
|
1121 |
[^\\\x80-\xff\n\015()] * # normal*
|
1122 |
)* # )*
|
1123 |
\) # )
|
1124 |
[\040\t]* )* # If comment found, allow more spaces.
|
1125 |
(?:
|
1126 |
\.
|
1127 |
[\040\t]* # Nab whitespace.
|
1128 |
(?:
|
1129 |
\( # (
|
1130 |
[^\\\x80-\xff\n\015()] * # normal*
|
1131 |
(?: # (
|
1132 |
(?: \\ [^\x80-\xff] |
|
1133 |
\( # (
|
1134 |
[^\\\x80-\xff\n\015()] * # normal*
|
1135 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
1136 |
\) # )
|
1137 |
) # special
|
1138 |
[^\\\x80-\xff\n\015()] * # normal*
|
1139 |
)* # )*
|
1140 |
\) # )
|
1141 |
[\040\t]* )* # If comment found, allow more spaces.
|
1142 |
(?:
|
1143 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
1144 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
1145 |
# Atom
|
1146 |
| # or
|
1147 |
" # "
|
1148 |
[^\\\x80-\xff\n\015"] * # normal
|
1149 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
|
1150 |
" # "
|
1151 |
# Quoted string
|
1152 |
)
|
1153 |
[\040\t]* # Nab whitespace.
|
1154 |
(?:
|
1155 |
\( # (
|
1156 |
[^\\\x80-\xff\n\015()] * # normal*
|
1157 |
(?: # (
|
1158 |
(?: \\ [^\x80-\xff] |
|
1159 |
\( # (
|
1160 |
[^\\\x80-\xff\n\015()] * # normal*
|
1161 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
1162 |
\) # )
|
1163 |
) # special
|
1164 |
[^\\\x80-\xff\n\015()] * # normal*
|
1165 |
)* # )*
|
1166 |
\) # )
|
1167 |
[\040\t]* )* # If comment found, allow more spaces.
|
1168 |
# additional words
|
1169 |
)*
|
1170 |
@
|
1171 |
[\040\t]* # Nab whitespace.
|
1172 |
(?:
|
1173 |
\( # (
|
1174 |
[^\\\x80-\xff\n\015()] * # normal*
|
1175 |
(?: # (
|
1176 |
(?: \\ [^\x80-\xff] |
|
1177 |
\( # (
|
1178 |
[^\\\x80-\xff\n\015()] * # normal*
|
1179 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
1180 |
\) # )
|
1181 |
) # special
|
1182 |
[^\\\x80-\xff\n\015()] * # normal*
|
1183 |
)* # )*
|
1184 |
\) # )
|
1185 |
[\040\t]* )* # If comment found, allow more spaces.
|
1186 |
(?:
|
1187 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
1188 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
1189 |
|
|
1190 |
\[ # [
|
1191 |
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
|
1192 |
\] # ]
|
1193 |
)
|
1194 |
[\040\t]* # Nab whitespace.
|
1195 |
(?:
|
1196 |
\( # (
|
1197 |
[^\\\x80-\xff\n\015()] * # normal*
|
1198 |
(?: # (
|
1199 |
(?: \\ [^\x80-\xff] |
|
1200 |
\( # (
|
1201 |
[^\\\x80-\xff\n\015()] * # normal*
|
1202 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
1203 |
\) # )
|
1204 |
) # special
|
1205 |
[^\\\x80-\xff\n\015()] * # normal*
|
1206 |
)* # )*
|
1207 |
\) # )
|
1208 |
[\040\t]* )* # If comment found, allow more spaces.
|
1209 |
# optional trailing comments
|
1210 |
(?:
|
1211 |
\.
|
1212 |
[\040\t]* # Nab whitespace.
|
1213 |
(?:
|
1214 |
\( # (
|
1215 |
[^\\\x80-\xff\n\015()] * # normal*
|
1216 |
(?: # (
|
1217 |
(?: \\ [^\x80-\xff] |
|
1218 |
\( # (
|
1219 |
[^\\\x80-\xff\n\015()] * # normal*
|
1220 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
1221 |
\) # )
|
1222 |
) # special
|
1223 |
[^\\\x80-\xff\n\015()] * # normal*
|
1224 |
)* # )*
|
1225 |
\) # )
|
1226 |
[\040\t]* )* # If comment found, allow more spaces.
|
1227 |
(?:
|
1228 |
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
|
1229 |
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
|
1230 |
|
|
1231 |
\[ # [
|
1232 |
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
|
1233 |
\] # ]
|
1234 |
)
|
1235 |
[\040\t]* # Nab whitespace.
|
1236 |
(?:
|
1237 |
\( # (
|
1238 |
[^\\\x80-\xff\n\015()] * # normal*
|
1239 |
(?: # (
|
1240 |
(?: \\ [^\x80-\xff] |
|
1241 |
\( # (
|
1242 |
[^\\\x80-\xff\n\015()] * # normal*
|
1243 |
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
|
1244 |
\) # )
|
1245 |
) # special
|
1246 |
[^\\\x80-\xff\n\015()] * # normal*
|
1247 |
)* # )*
|
1248 |
\) # )
|
1249 |
[\040\t]* )* # If comment found, allow more spaces.
|
1250 |
# optional trailing comments
|
1251 |
)*
|
1252 |
# address spec
|
1253 |
> # >
|
1254 |
# name and address
|
1255 |
)
|
1256 |
/x
|
1257 |
Alan Other <user\@dom.ain>
|
1258 |
<user\@dom.ain>
|
1259 |
user\@dom.ain
|
1260 |
\"A. Other\" <user.1234\@dom.ain> (a comment)
|
1261 |
A. Other <user.1234\@dom.ain> (a comment)
|
1262 |
\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
|
1263 |
A missing angle <user\@some.where
|
1264 |
*** Failers
|
1265 |
The quick brown fox
|
1266 |
|
1267 |
/abc\0def\00pqr\000xyz\0000AB/
|
1268 |
abc\0def\00pqr\000xyz\0000AB
|
1269 |
abc456 abc\0def\00pqr\000xyz\0000ABCDE
|
1270 |
|
1271 |
/abc\x0def\x00pqr\x000xyz\x0000AB/
|
1272 |
abc\x0def\x00pqr\x000xyz\x0000AB
|
1273 |
abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE
|
1274 |
|
1275 |
/^[\000-\037]/
|
1276 |
\0A
|
1277 |
\01B
|
1278 |
\037C
|
1279 |
|
1280 |
/\0*/
|
1281 |
\0\0\0\0
|
1282 |
|
1283 |
/A\x0{2,3}Z/
|
1284 |
The A\x0\x0Z
|
1285 |
An A\0\x0\0Z
|
1286 |
*** Failers
|
1287 |
A\0Z
|
1288 |
A\0\x0\0\x0Z
|
1289 |
|
1290 |
/^(cow|)\1(bell)/
|
1291 |
cowcowbell
|
1292 |
bell
|
1293 |
*** Failers
|
1294 |
cowbell
|
1295 |
|
1296 |
/^\s/
|
1297 |
\040abc
|
1298 |
\x0cabc
|
1299 |
\nabc
|
1300 |
\rabc
|
1301 |
\tabc
|
1302 |
*** Failers
|
1303 |
abc
|
1304 |
|
1305 |
/^a b
|
1306 |
c/x
|
1307 |
abc
|
1308 |
|
1309 |
/^(a|)\1*b/
|
1310 |
ab
|
1311 |
aaaab
|
1312 |
b
|
1313 |
*** Failers
|
1314 |
acb
|
1315 |
|
1316 |
/^(a|)\1+b/
|
1317 |
aab
|
1318 |
aaaab
|
1319 |
b
|
1320 |
*** Failers
|
1321 |
ab
|
1322 |
|
1323 |
/^(a|)\1?b/
|
1324 |
ab
|
1325 |
aab
|
1326 |
b
|
1327 |
*** Failers
|
1328 |
acb
|
1329 |
|
1330 |
/^(a|)\1{2}b/
|
1331 |
aaab
|
1332 |
b
|
1333 |
*** Failers
|
1334 |
ab
|
1335 |
aab
|
1336 |
aaaab
|
1337 |
|
1338 |
/^(a|)\1{2,3}b/
|
1339 |
aaab
|
1340 |
aaaab
|
1341 |
b
|
1342 |
*** Failers
|
1343 |
ab
|
1344 |
aab
|
1345 |
aaaaab
|
1346 |
|
1347 |
/ab{1,3}bc/
|
1348 |
abbbbc
|
1349 |
abbbc
|
1350 |
abbc
|
1351 |
*** Failers
|
1352 |
abc
|
1353 |
abbbbbc
|
1354 |
|
1355 |
/([^.]*)\.([^:]*):[T ]+(.*)/
|
1356 |
track1.title:TBlah blah blah
|
1357 |
|
1358 |
/([^.]*)\.([^:]*):[T ]+(.*)/i
|
1359 |
track1.title:TBlah blah blah
|
1360 |
|
1361 |
/([^.]*)\.([^:]*):[t ]+(.*)/i
|
1362 |
track1.title:TBlah blah blah
|
1363 |
|
1364 |
/^[W-c]+$/
|
1365 |
WXY_^abc
|
1366 |
*** Failers
|
1367 |
wxy
|
1368 |
|
1369 |
/^[W-c]+$/i
|
1370 |
WXY_^abc
|
1371 |
wxy_^ABC
|
1372 |
|
1373 |
/^[\x3f-\x5F]+$/i
|
1374 |
WXY_^abc
|
1375 |
wxy_^ABC
|
1376 |
|
1377 |
/^abc$/m
|
1378 |
abc
|
1379 |
qqq\nabc
|
1380 |
abc\nzzz
|
1381 |
qqq\nabc\nzzz
|
1382 |
|
1383 |
/^abc$/
|
1384 |
abc
|
1385 |
*** Failers
|
1386 |
qqq\nabc
|
1387 |
abc\nzzz
|
1388 |
qqq\nabc\nzzz
|
1389 |
|
1390 |
/\Aabc\Z/m
|
1391 |
abc
|
1392 |
abc\n
|
1393 |
*** Failers
|
1394 |
qqq\nabc
|
1395 |
abc\nzzz
|
1396 |
qqq\nabc\nzzz
|
1397 |
|
1398 |
/\A(.)*\Z/s
|
1399 |
abc\ndef
|
1400 |
|
1401 |
/\A(.)*\Z/m
|
1402 |
*** Failers
|
1403 |
abc\ndef
|
1404 |
|
1405 |
/(?:b)|(?::+)/
|
1406 |
b::c
|
1407 |
c::b
|
1408 |
|
1409 |
/[-az]+/
|
1410 |
az-
|
1411 |
*** Failers
|
1412 |
b
|
1413 |
|
1414 |
/[az-]+/
|
1415 |
za-
|
1416 |
*** Failers
|
1417 |
b
|
1418 |
|
1419 |
/[a\-z]+/
|
1420 |
a-z
|
1421 |
*** Failers
|
1422 |
b
|
1423 |
|
1424 |
/[a-z]+/
|
1425 |
abcdxyz
|
1426 |
|
1427 |
/[\d-]+/
|
1428 |
12-34
|
1429 |
*** Failers
|
1430 |
aaa
|
1431 |
|
1432 |
/[\d-z]+/
|
1433 |
12-34z
|
1434 |
*** Failers
|
1435 |
aaa
|
1436 |
|
1437 |
/\x5c/
|
1438 |
\\
|
1439 |
|
1440 |
/\x20Z/
|
1441 |
the Zoo
|
1442 |
*** Failers
|
1443 |
Zulu
|
1444 |
|
1445 |
/(abc)\1/i
|
1446 |
abcabc
|
1447 |
ABCabc
|
1448 |
abcABC
|
1449 |
|
1450 |
/ab{3cd/
|
1451 |
ab{3cd
|
1452 |
|
1453 |
/ab{3,cd/
|
1454 |
ab{3,cd
|
1455 |
|
1456 |
/ab{3,4a}cd/
|
1457 |
ab{3,4a}cd
|
1458 |
|
1459 |
/{4,5a}bc/
|
1460 |
{4,5a}bc
|
1461 |
|
1462 |
/abc$/
|
1463 |
abc
|
1464 |
abc\n
|
1465 |
*** Failers
|
1466 |
abc\ndef
|
1467 |
|
1468 |
/(abc)\123/
|
1469 |
abc\x53
|
1470 |
|
1471 |
/(abc)\223/
|
1472 |
abc\x93
|
1473 |
|
1474 |
/(abc)\323/
|
1475 |
abc\xd3
|
1476 |
|
1477 |
/(abc)\100/
|
1478 |
abc\x40
|
1479 |
abc\100
|
1480 |
|
1481 |
/(abc)\1000/
|
1482 |
abc\x400
|
1483 |
abc\x40\x30
|
1484 |
abc\1000
|
1485 |
abc\100\x30
|
1486 |
abc\100\060
|
1487 |
abc\100\60
|
1488 |
|
1489 |
/^A\8B\9C$/
|
1490 |
A8B9C
|
1491 |
*** Failers
|
1492 |
A\08B\09C
|
1493 |
|
1494 |
/^(A)(B)(C)(D)(E)(F)(G)(H)(I)\8\9$/
|
1495 |
ABCDEFGHIHI
|
1496 |
|
1497 |
/^[A\8B\9C]+$/
|
1498 |
A8B9C
|
1499 |
*** Failers
|
1500 |
A8B9C\x00
|
1501 |
|
1502 |
/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\12\123/
|
1503 |
abcdefghijkllS
|
1504 |
|
1505 |
/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
|
1506 |
abcdefghijk\12S
|
1507 |
|
1508 |
/ab\idef/
|
1509 |
abidef
|
1510 |
|
1511 |
/a{0}bc/
|
1512 |
bc
|
1513 |
|
1514 |
/(a|(bc)){0,0}?xyz/
|
1515 |
xyz
|
1516 |
|
1517 |
/abc[\10]de/
|
1518 |
abc\010de
|
1519 |
|
1520 |
/abc[\1]de/
|
1521 |
abc\1de
|
1522 |
|
1523 |
/(abc)[\1]de/
|
1524 |
abc\1de
|
1525 |
|
1526 |
/(?s)a.b/
|
1527 |
a\nb
|
1528 |
|
1529 |
/^([^a])([^\b])([^c]*)([^d]{3,4})/
|
1530 |
baNOTccccd
|
1531 |
baNOTcccd
|
1532 |
baNOTccd
|
1533 |
bacccd
|
1534 |
*** Failers
|
1535 |
anything
|
1536 |
b\bc
|
1537 |
baccd
|
1538 |
|
1539 |
/[^a]/
|
1540 |
Abc
|
1541 |
|
1542 |
/[^a]/i
|
1543 |
Abc
|
1544 |
|
1545 |
/[^a]+/
|
1546 |
AAAaAbc
|
1547 |
|
1548 |
/[^a]+/i
|
1549 |
AAAaAbc
|
1550 |
|
1551 |
/[^a]+/
|
1552 |
bbb\nccc
|
1553 |
|
1554 |
/[^k]$/
|
1555 |
abc
|
1556 |
*** Failers
|
1557 |
abk
|
1558 |
|
1559 |
/[^k]{2,3}$/
|
1560 |
abc
|
1561 |
kbc
|
1562 |
kabc
|
1563 |
*** Failers
|
1564 |
abk
|
1565 |
akb
|
1566 |
akk
|
1567 |
|
1568 |
/^\d{8,}\@.+[^k]$/
|
1569 |
12345678\@a.b.c.d
|
1570 |
123456789\@x.y.z
|
1571 |
*** Failers
|
1572 |
12345678\@x.y.uk
|
1573 |
1234567\@a.b.c.d
|
1574 |
|
1575 |
/(a)\1{8,}/
|
1576 |
aaaaaaaaa
|
1577 |
aaaaaaaaaa
|
1578 |
*** Failers
|
1579 |
aaaaaaa
|
1580 |
|
1581 |
/[^a]/
|
1582 |
aaaabcd
|
1583 |
aaAabcd
|
1584 |
|
1585 |
/[^a]/i
|
1586 |
aaaabcd
|
1587 |
aaAabcd
|
1588 |
|
1589 |
/[^az]/
|
1590 |
aaaabcd
|
1591 |
aaAabcd
|
1592 |
|
1593 |
/[^az]/i
|
1594 |
aaaabcd
|
1595 |
aaAabcd
|
1596 |
|
1597 |
/\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/
|
1598 |
\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
|
1599 |
|
1600 |
/P[^*]TAIRE[^*]{1,6}?LL/
|
1601 |
xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
|
1602 |
|
1603 |
/P[^*]TAIRE[^*]{1,}?LL/
|
1604 |
xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
|
1605 |
|
1606 |
/(\.\d\d[1-9]?)\d+/
|
1607 |
1.230003938
|
1608 |
1.875000282
|
1609 |
1.235
|
1610 |
|
1611 |
/(\.\d\d((?=0)|\d(?=\d)))/
|
1612 |
1.230003938
|
1613 |
1.875000282
|
1614 |
*** Failers
|
1615 |
1.235
|
1616 |
|
1617 |
/a(?)b/
|
1618 |
ab
|
1619 |
|
1620 |
/\b(foo)\s+(\w+)/i
|
1621 |
Food is on the foo table
|
1622 |
|
1623 |
/foo(.*)bar/
|
1624 |
The food is under the bar in the barn.
|
1625 |
|
1626 |
/foo(.*?)bar/
|
1627 |
The food is under the bar in the barn.
|
1628 |
|
1629 |
/(.*)(\d*)/
|
1630 |
I have 2 numbers: 53147
|
1631 |
|
1632 |
/(.*)(\d+)/
|
1633 |
I have 2 numbers: 53147
|
1634 |
|
1635 |
/(.*?)(\d*)/
|
1636 |
I have 2 numbers: 53147
|
1637 |
|
1638 |
/(.*?)(\d+)/
|
1639 |
I have 2 numbers: 53147
|
1640 |
|
1641 |
/(.*)(\d+)$/
|
1642 |
I have 2 numbers: 53147
|
1643 |
|
1644 |
/(.*?)(\d+)$/
|
1645 |
I have 2 numbers: 53147
|
1646 |
|
1647 |
/(.*)\b(\d+)$/
|
1648 |
I have 2 numbers: 53147
|
1649 |
|
1650 |
/(.*\D)(\d+)$/
|
1651 |
I have 2 numbers: 53147
|
1652 |
|
1653 |
/^\D*(?!123)/
|
1654 |
ABC123
|
1655 |
|
1656 |
/^(\D*)(?=\d)(?!123)/
|
1657 |
ABC445
|
1658 |
*** Failers
|
1659 |
ABC123
|
1660 |
|
1661 |
/^[W-]46]/
|
1662 |
W46]789
|
1663 |
-46]789
|
1664 |
*** Failers
|
1665 |
Wall
|
1666 |
Zebra
|
1667 |
42
|
1668 |
[abcd]
|
1669 |
]abcd[
|
1670 |
|
1671 |
/^[W-\]46]/
|
1672 |
W46]789
|
1673 |
Wall
|
1674 |
Zebra
|
1675 |
Xylophone
|
1676 |
42
|
1677 |
[abcd]
|
1678 |
]abcd[
|
1679 |
\\backslash
|
1680 |
*** Failers
|
1681 |
-46]789
|
1682 |
well
|
1683 |
|
1684 |
/\d\d\/\d\d\/\d\d\d\d/
|
1685 |
01/01/2000
|
1686 |
|
1687 |
/word (?:[a-zA-Z0-9]+ ){0,10}otherword/
|
1688 |
word cat dog elephant mussel cow horse canary baboon snake shark otherword
|
1689 |
word cat dog elephant mussel cow horse canary baboon snake shark
|
1690 |
|
1691 |
/word (?:[a-zA-Z0-9]+ ){0,300}otherword/
|
1692 |
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
|
1693 |
|
1694 |
/^(a){0,0}/
|
1695 |
bcd
|
1696 |
abc
|
1697 |
aab
|
1698 |
|
1699 |
/^(a){0,1}/
|
1700 |
bcd
|
1701 |
abc
|
1702 |
aab
|
1703 |
|
1704 |
/^(a){0,2}/
|
1705 |
bcd
|
1706 |
abc
|
1707 |
aab
|
1708 |
|
1709 |
/^(a){0,3}/
|
1710 |
bcd
|
1711 |
abc
|
1712 |
aab
|
1713 |
aaa
|
1714 |
|
1715 |
/^(a){0,}/
|
1716 |
bcd
|
1717 |
abc
|
1718 |
aab
|
1719 |
aaa
|
1720 |
aaaaaaaa
|
1721 |
|
1722 |
/^(a){1,1}/
|
1723 |
bcd
|
1724 |
abc
|
1725 |
aab
|
1726 |
|
1727 |
/^(a){1,2}/
|
1728 |
bcd
|
1729 |
abc
|
1730 |
aab
|
1731 |
|
1732 |
/^(a){1,3}/
|
1733 |
bcd
|
1734 |
abc
|
1735 |
aab
|
1736 |
aaa
|
1737 |
|
1738 |
/^(a){1,}/
|
1739 |
bcd
|
1740 |
abc
|
1741 |
aab
|
1742 |
aaa
|
1743 |
aaaaaaaa
|
1744 |
|
1745 |
/.*\.gif/
|
1746 |
borfle\nbib.gif\nno
|
1747 |
|
1748 |
/.{0,}\.gif/
|
1749 |
borfle\nbib.gif\nno
|
1750 |
|
1751 |
/.*\.gif/m
|
1752 |
borfle\nbib.gif\nno
|
1753 |
|
1754 |
/.*\.gif/s
|
1755 |
borfle\nbib.gif\nno
|
1756 |
|
1757 |
/.*\.gif/ms
|
1758 |
borfle\nbib.gif\nno
|
1759 |
|
1760 |
/.*$/
|
1761 |
borfle\nbib.gif\nno
|
1762 |
|
1763 |
/.*$/m
|
1764 |
borfle\nbib.gif\nno
|
1765 |
|
1766 |
/.*$/s
|
1767 |
borfle\nbib.gif\nno
|
1768 |
|
1769 |
/.*$/ms
|
1770 |
borfle\nbib.gif\nno
|
1771 |
|
1772 |
/.*$/
|
1773 |
borfle\nbib.gif\nno\n
|
1774 |
|
1775 |
/.*$/m
|
1776 |
borfle\nbib.gif\nno\n
|
1777 |
|
1778 |
/.*$/s
|
1779 |
borfle\nbib.gif\nno\n
|
1780 |
|
1781 |
/.*$/ms
|
1782 |
borfle\nbib.gif\nno\n
|
1783 |
|
1784 |
/(.*X|^B)/
|
1785 |
abcde\n1234Xyz
|
1786 |
BarFoo
|
1787 |
*** Failers
|
1788 |
abcde\nBar
|
1789 |
|
1790 |
/(.*X|^B)/m
|
1791 |
abcde\n1234Xyz
|
1792 |
BarFoo
|
1793 |
abcde\nBar
|
1794 |
|
1795 |
/(.*X|^B)/s
|
1796 |
abcde\n1234Xyz
|
1797 |
BarFoo
|
1798 |
*** Failers
|
1799 |
abcde\nBar
|
1800 |
|
1801 |
/(.*X|^B)/ms
|
1802 |
abcde\n1234Xyz
|
1803 |
BarFoo
|
1804 |
abcde\nBar
|
1805 |
|
1806 |
/(?s)(.*X|^B)/
|
1807 |
abcde\n1234Xyz
|
1808 |
BarFoo
|
1809 |
*** Failers
|
1810 |
abcde\nBar
|
1811 |
|
1812 |
/(?s:.*X|^B)/
|
1813 |
abcde\n1234Xyz
|
1814 |
BarFoo
|
1815 |
*** Failers
|
1816 |
abcde\nBar
|
1817 |
|
1818 |
/^.*B/
|
1819 |
**** Failers
|
1820 |
abc\nB
|
1821 |
|
1822 |
/(?s)^.*B/
|
1823 |
abc\nB
|
1824 |
|
1825 |
/(?m)^.*B/
|
1826 |
abc\nB
|
1827 |
|
1828 |
/(?ms)^.*B/
|
1829 |
abc\nB
|
1830 |
|
1831 |
/(?ms)^B/
|
1832 |
abc\nB
|
1833 |
|
1834 |
/(?s)B$/
|
1835 |
B\n
|
1836 |
|
1837 |
/^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
|
1838 |
123456654321
|
1839 |
|
1840 |
/^\d\d\d\d\d\d\d\d\d\d\d\d/
|
1841 |
123456654321
|
1842 |
|
1843 |
/^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
|
1844 |
123456654321
|
1845 |
|
1846 |
/^[abc]{12}/
|
1847 |
abcabcabcabc
|
1848 |
|
1849 |
/^[a-c]{12}/
|
1850 |
abcabcabcabc
|
1851 |
|
1852 |
/^(a|b|c){12}/
|
1853 |
abcabcabcabc
|
1854 |
|
1855 |
/^[abcdefghijklmnopqrstuvwxy0123456789]/
|
1856 |
n
|
1857 |
*** Failers
|
1858 |
z
|
1859 |
|
1860 |
/abcde{0,0}/
|
1861 |
abcd
|
1862 |
*** Failers
|
1863 |
abce
|
1864 |
|
1865 |
/ab[cd]{0,0}e/
|
1866 |
abe
|
1867 |
*** Failers
|
1868 |
abcde
|
1869 |
|
1870 |
/ab(c){0,0}d/
|
1871 |
abd
|
1872 |
*** Failers
|
1873 |
abcd
|
1874 |
|
1875 |
/a(b*)/
|
1876 |
a
|
1877 |
ab
|
1878 |
abbbb
|
1879 |
*** Failers
|
1880 |
bbbbb
|
1881 |
|
1882 |
/ab\d{0}e/
|
1883 |
abe
|
1884 |
*** Failers
|
1885 |
ab1e
|
1886 |
|
1887 |
/"([^\\"]+|\\.)*"/
|
1888 |
the \"quick\" brown fox
|
1889 |
\"the \\\"quick\\\" brown fox\"
|
1890 |
|
1891 |
/.*?/g+
|
1892 |
abc
|
1893 |
|
1894 |
/\b/g+
|
1895 |
abc
|
1896 |
|
1897 |
/\b/+g
|
1898 |
abc
|
1899 |
|
1900 |
//g
|
1901 |
abc
|
1902 |
|
1903 |
/<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
|
1904 |
<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>
|
1905 |
|
1906 |
/a[^a]b/
|
1907 |
acb
|
1908 |
a\nb
|
1909 |
|
1910 |
/a.b/
|
1911 |
acb
|
1912 |
*** Failers
|
1913 |
a\nb
|
1914 |
|
1915 |
/a[^a]b/s
|
1916 |
acb
|
1917 |
a\nb
|
1918 |
|
1919 |
/a.b/s
|
1920 |
acb
|
1921 |
a\nb
|
1922 |
|
1923 |
/^(b+?|a){1,2}?c/
|
1924 |
bac
|
1925 |
bbac
|
1926 |
bbbac
|
1927 |
bbbbac
|
1928 |
bbbbbac
|
1929 |
|
1930 |
/^(b+|a){1,2}?c/
|
1931 |
bac
|
1932 |
bbac
|
1933 |
bbbac
|
1934 |
bbbbac
|
1935 |
bbbbbac
|
1936 |
|
1937 |
/(?!\A)x/m
|
1938 |
x\nb\n
|
1939 |
a\bx\n
|
1940 |
|
1941 |
/\x0{ab}/
|
1942 |
\0{ab}
|
1943 |
|
1944 |
/(A|B)*?CD/
|
1945 |
CD
|
1946 |
|
1947 |
/(A|B)*CD/
|
1948 |
CD
|
1949 |
|
1950 |
/(AB)*?\1/
|
1951 |
ABABAB
|
1952 |
|
1953 |
/(AB)*\1/
|
1954 |
ABABAB
|
1955 |
|
1956 |
/(?<!bar)foo/
|
1957 |
foo
|
1958 |
catfood
|
1959 |
arfootle
|
1960 |
rfoosh
|
1961 |
*** Failers
|
1962 |
barfoo
|
1963 |
towbarfoo
|
1964 |
|
1965 |
/\w{3}(?<!bar)foo/
|
1966 |
catfood
|
1967 |
*** Failers
|
1968 |
foo
|
1969 |
barfoo
|
1970 |
towbarfoo
|
1971 |
|
1972 |
/(?<=(foo)a)bar/
|
1973 |
fooabar
|
1974 |
*** Failers
|
1975 |
bar
|
1976 |
foobbar
|
1977 |
|
1978 |
/\Aabc\z/m
|
1979 |
abc
|
1980 |
*** Failers
|
1981 |
abc\n
|
1982 |
qqq\nabc
|
1983 |
abc\nzzz
|
1984 |
qqq\nabc\nzzz
|
1985 |
|
1986 |
"(?>.*/)foo"
|
1987 |
/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
|
1988 |
|
1989 |
"(?>.*/)foo"
|
1990 |
/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
|
1991 |
|
1992 |
/(?>(\.\d\d[1-9]?))\d+/
|
1993 |
1.230003938
|
1994 |
1.875000282
|
1995 |
*** Failers
|
1996 |
1.235
|
1997 |
|
1998 |
/^((?>\w+)|(?>\s+))*$/
|
1999 |
now is the time for all good men to come to the aid of the party
|
2000 |
*** Failers
|
2001 |
this is not a line with only words and spaces!
|
2002 |
|
2003 |
/(\d+)(\w)/
|
2004 |
12345a
|
2005 |
12345+
|
2006 |
|
2007 |
/((?>\d+))(\w)/
|
2008 |
12345a
|
2009 |
*** Failers
|
2010 |
12345+
|
2011 |
|
2012 |
/(?>a+)b/
|
2013 |
aaab
|
2014 |
|
2015 |
/((?>a+)b)/
|
2016 |
aaab
|
2017 |
|
2018 |
/(?>(a+))b/
|
2019 |
aaab
|
2020 |
|
2021 |
/(?>b)+/
|
2022 |
aaabbbccc
|
2023 |
|
2024 |
/(?>a+|b+|c+)*c/
|
2025 |
aaabbbbccccd
|
2026 |
|
2027 |
/((?>[^()]+)|\([^()]*\))+/
|
2028 |
((abc(ade)ufh()()x
|
2029 |
|
2030 |
/\(((?>[^()]+)|\([^()]+\))+\)/
|
2031 |
(abc)
|
2032 |
(abc(def)xyz)
|
2033 |
*** Failers
|
2034 |
((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
2035 |
|
2036 |
/a(?-i)b/i
|
2037 |
ab
|
2038 |
Ab
|
2039 |
*** Failers
|
2040 |
aB
|
2041 |
AB
|
2042 |
|
2043 |
/(a (?x)b c)d e/
|
2044 |
a bcd e
|
2045 |
*** Failers
|
2046 |
a b cd e
|
2047 |
abcd e
|
2048 |
a bcde
|
2049 |
|
2050 |
/(a b(?x)c d (?-x)e f)/
|
2051 |
a bcde f
|
2052 |
*** Failers
|
2053 |
abcdef
|
2054 |
|
2055 |
/(a(?i)b)c/
|
2056 |
abc
|
2057 |
aBc
|
2058 |
*** Failers
|
2059 |
abC
|
2060 |
aBC
|
2061 |
Abc
|
2062 |
ABc
|
2063 |
ABC
|
2064 |
AbC
|
2065 |
|
2066 |
/a(?i:b)c/
|
2067 |
abc
|
2068 |
aBc
|
2069 |
*** Failers
|
2070 |
ABC
|
2071 |
abC
|
2072 |
aBC
|
2073 |
|
2074 |
/a(?i:b)*c/
|
2075 |
aBc
|
2076 |
aBBc
|
2077 |
*** Failers
|
2078 |
aBC
|
2079 |
aBBC
|
2080 |
|
2081 |
/a(?=b(?i)c)\w\wd/
|
2082 |
abcd
|
2083 |
abCd
|
2084 |
*** Failers
|
2085 |
aBCd
|
2086 |
abcD
|
2087 |
|
2088 |
/(?s-i:more.*than).*million/i
|
2089 |
more than million
|
2090 |
more than MILLION
|
2091 |
more \n than Million
|
2092 |
*** Failers
|
2093 |
MORE THAN MILLION
|
2094 |
more \n than \n million
|
2095 |
|
2096 |
/(?:(?s-i)more.*than).*million/i
|
2097 |
more than million
|
2098 |
more than MILLION
|
2099 |
more \n than Million
|
2100 |
*** Failers
|
2101 |
MORE THAN MILLION
|
2102 |
more \n than \n million
|
2103 |
|
2104 |
/(?>a(?i)b+)+c/
|
2105 |
abc
|
2106 |
aBbc
|
2107 |
aBBc
|
2108 |
*** Failers
|
2109 |
Abc
|
2110 |
abAb
|
2111 |
abbC
|
2112 |
|
2113 |
/(?=a(?i)b)\w\wc/
|
2114 |
abc
|
2115 |
aBc
|
2116 |
*** Failers
|
2117 |
Ab
|
2118 |
abC
|
2119 |
aBC
|
2120 |
|
2121 |
/(?<=a(?i)b)(\w\w)c/
|
2122 |
abxxc
|
2123 |
aBxxc
|
2124 |
*** Failers
|
2125 |
Abxxc
|
2126 |
ABxxc
|
2127 |
abxxC
|
2128 |
|
2129 |
/(?:(a)|b)(?(1)A|B)/
|
2130 |
aA
|
2131 |
bB
|
2132 |
*** Failers
|
2133 |
aB
|
2134 |
bA
|
2135 |
|
2136 |
/^(a)?(?(1)a|b)+$/
|
2137 |
aa
|
2138 |
b
|
2139 |
bb
|
2140 |
*** Failers
|
2141 |
ab
|
2142 |
|
2143 |
/^(?(?=abc)\w{3}:|\d\d)$/
|
2144 |
abc:
|
2145 |
12
|
2146 |
*** Failers
|
2147 |
123
|
2148 |
xyz
|
2149 |
|
2150 |
/^(?(?!abc)\d\d|\w{3}:)$/
|
2151 |
abc:
|
2152 |
12
|
2153 |
*** Failers
|
2154 |
123
|
2155 |
xyz
|
2156 |
|
2157 |
/(?(?<=foo)bar|cat)/
|
2158 |
foobar
|
2159 |
cat
|
2160 |
fcat
|
2161 |
focat
|
2162 |
*** Failers
|
2163 |
foocat
|
2164 |
|
2165 |
/(?(?<!foo)cat|bar)/
|
2166 |
foobar
|
2167 |
cat
|
2168 |
fcat
|
2169 |
focat
|
2170 |
*** Failers
|
2171 |
foocat
|
2172 |
|
2173 |
/( \( )? [^()]+ (?(1) \) |) /x
|
2174 |
abcd
|
2175 |
(abcd)
|
2176 |
the quick (abcd) fox
|
2177 |
(abcd
|
2178 |
|
2179 |
/( \( )? [^()]+ (?(1) \) ) /x
|
2180 |
abcd
|
2181 |
(abcd)
|
2182 |
the quick (abcd) fox
|
2183 |
(abcd
|
2184 |
|
2185 |
/^(?(2)a|(1)(2))+$/
|
2186 |
12
|
2187 |
12a
|
2188 |
12aa
|
2189 |
*** Failers
|
2190 |
1234
|
2191 |
|
2192 |
/((?i)blah)\s+\1/
|
2193 |
blah blah
|
2194 |
BLAH BLAH
|
2195 |
Blah Blah
|
2196 |
blaH blaH
|
2197 |
*** Failers
|
2198 |
blah BLAH
|
2199 |
Blah blah
|
2200 |
blaH blah
|
2201 |
|
2202 |
/((?i)blah)\s+(?i:\1)/
|
2203 |
blah blah
|
2204 |
BLAH BLAH
|
2205 |
Blah Blah
|
2206 |
blaH blaH
|
2207 |
blah BLAH
|
2208 |
Blah blah
|
2209 |
blaH blah
|
2210 |
|
2211 |
/(?>a*)*/
|
2212 |
a
|
2213 |
aa
|
2214 |
aaaa
|
2215 |
|
2216 |
/(abc|)+/
|
2217 |
abc
|
2218 |
abcabc
|
2219 |
abcabcabc
|
2220 |
xyz
|
2221 |
|
2222 |
/([a]*)*/
|
2223 |
a
|
2224 |
aaaaa
|
2225 |
|
2226 |
/([ab]*)*/
|
2227 |
a
|
2228 |
b
|
2229 |
ababab
|
2230 |
aaaabcde
|
2231 |
bbbb
|
2232 |
|
2233 |
/([^a]*)*/
|
2234 |
b
|
2235 |
bbbb
|
2236 |
aaa
|
2237 |
|
2238 |
/([^ab]*)*/
|
2239 |
cccc
|
2240 |
abab
|
2241 |
|
2242 |
/([a]*?)*/
|
2243 |
a
|
2244 |
aaaa
|
2245 |
|
2246 |
/([ab]*?)*/
|
2247 |
a
|
2248 |
b
|
2249 |
abab
|
2250 |
baba
|
2251 |
|
2252 |
/([^a]*?)*/
|
2253 |
b
|
2254 |
bbbb
|
2255 |
aaa
|
2256 |
|
2257 |
/([^ab]*?)*/
|
2258 |
c
|
2259 |
cccc
|
2260 |
baba
|
2261 |
|
2262 |
/(?>a*)*/
|
2263 |
a
|
2264 |
aaabcde
|
2265 |
|
2266 |
/((?>a*))*/
|
2267 |
aaaaa
|
2268 |
aabbaa
|
2269 |
|
2270 |
/((?>a*?))*/
|
2271 |
aaaaa
|
2272 |
aabbaa
|
2273 |
|
2274 |
/(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /x
|
2275 |
12-sep-98
|
2276 |
12-09-98
|
2277 |
*** Failers
|
2278 |
sep-12-98
|
2279 |
|
2280 |
/(?<=(foo))bar\1/
|
2281 |
foobarfoo
|
2282 |
foobarfootling
|
2283 |
*** Failers
|
2284 |
foobar
|
2285 |
barfoo
|
2286 |
|
2287 |
/(?i:saturday|sunday)/
|
2288 |
saturday
|
2289 |
sunday
|
2290 |
Saturday
|
2291 |
Sunday
|
2292 |
SATURDAY
|
2293 |
SUNDAY
|
2294 |
SunDay
|
2295 |
|
2296 |
/(a(?i)bc|BB)x/
|
2297 |
abcx
|
2298 |
aBCx
|
2299 |
bbx
|
2300 |
BBx
|
2301 |
*** Failers
|
2302 |
abcX
|
2303 |
aBCX
|
2304 |
bbX
|
2305 |
BBX
|
2306 |
|
2307 |
/^([ab](?i)[cd]|[ef])/
|
2308 |
ac
|
2309 |
aC
|
2310 |
bD
|
2311 |
elephant
|
2312 |
Europe
|
2313 |
frog
|
2314 |
France
|
2315 |
*** Failers
|
2316 |
Africa
|
2317 |
|
2318 |
/^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
|
2319 |
ab
|
2320 |
aBd
|
2321 |
xy
|
2322 |
xY
|
2323 |
zebra
|
2324 |
Zambesi
|
2325 |
*** Failers
|
2326 |
aCD
|
2327 |
XY
|
2328 |
|
2329 |
/(?<=foo\n)^bar/m
|
2330 |
foo\nbar
|
2331 |
*** Failers
|
2332 |
bar
|
2333 |
baz\nbar
|
2334 |
|
2335 |
/(?<=(?<!foo)bar)baz/
|
2336 |
barbaz
|
2337 |
barbarbaz
|
2338 |
koobarbaz
|
2339 |
*** Failers
|
2340 |
baz
|
2341 |
foobarbaz
|
2342 |
|
2343 |
/The cases of aaaa and aaaaaa are missed out below because Perl does things/
|
2344 |
/differently. We know that odd, and maybe incorrect, things happen with/
|
2345 |
/recursive references in Perl, as far as 5.11.3 - see some stuff in test #2./
|
2346 |
|
2347 |
/^(a\1?){4}$/
|
2348 |
a
|
2349 |
aa
|
2350 |
aaa
|
2351 |
aaaaa
|
2352 |
aaaaaaa
|
2353 |
aaaaaaaa
|
2354 |
aaaaaaaaa
|
2355 |
aaaaaaaaaa
|
2356 |
aaaaaaaaaaa
|
2357 |
aaaaaaaaaaaa
|
2358 |
aaaaaaaaaaaaa
|
2359 |
aaaaaaaaaaaaaa
|
2360 |
aaaaaaaaaaaaaaa
|
2361 |
aaaaaaaaaaaaaaaa
|
2362 |
|
2363 |
/^(a\1?)(a\1?)(a\2?)(a\3?)$/
|
2364 |
a
|
2365 |
aa
|
2366 |
aaa
|
2367 |
aaaa
|
2368 |
aaaaa
|
2369 |
aaaaaa
|
2370 |
aaaaaaa
|
2371 |
aaaaaaaa
|
2372 |
aaaaaaaaa
|
2373 |
aaaaaaaaaa
|
2374 |
aaaaaaaaaaa
|
2375 |
aaaaaaaaaaaa
|
2376 |
aaaaaaaaaaaaa
|
2377 |
aaaaaaaaaaaaaa
|
2378 |
aaaaaaaaaaaaaaa
|
2379 |
aaaaaaaaaaaaaaaa
|
2380 |
|
2381 |
/The following tests are taken from the Perl 5.005 test suite; some of them/
|
2382 |
/are compatible with 5.004, but I'd rather not have to sort them out./
|
2383 |
|
2384 |
/abc/
|
2385 |
abc
|
2386 |
xabcy
|
2387 |
ababc
|
2388 |
*** Failers
|
2389 |
xbc
|
2390 |
axc
|
2391 |
abx
|
2392 |
|
2393 |
/ab*c/
|
2394 |
abc
|
2395 |
|
2396 |
/ab*bc/
|
2397 |
abc
|
2398 |
abbc
|
2399 |
abbbbc
|
2400 |
|
2401 |
/.{1}/
|
2402 |
abbbbc
|
2403 |
|
2404 |
/.{3,4}/
|
2405 |
abbbbc
|
2406 |
|
2407 |
/ab{0,}bc/
|
2408 |
abbbbc
|
2409 |
|
2410 |
/ab+bc/
|
2411 |
abbc
|
2412 |
*** Failers
|
2413 |
abc
|
2414 |
abq
|
2415 |
|
2416 |
/ab{1,}bc/
|
2417 |
|
2418 |
/ab+bc/
|
2419 |
abbbbc
|
2420 |
|
2421 |
/ab{1,}bc/
|
2422 |
abbbbc
|
2423 |
|
2424 |
/ab{1,3}bc/
|
2425 |
abbbbc
|
2426 |
|
2427 |
/ab{3,4}bc/
|
2428 |
abbbbc
|
2429 |
|
2430 |
/ab{4,5}bc/
|
2431 |
*** Failers
|
2432 |
abq
|
2433 |
abbbbc
|
2434 |
|
2435 |
/ab?bc/
|
2436 |
abbc
|
2437 |
abc
|
2438 |
|
2439 |
/ab{0,1}bc/
|
2440 |
abc
|
2441 |
|
2442 |
/ab?bc/
|
2443 |
|
2444 |
/ab?c/
|
2445 |
abc
|
2446 |
|
2447 |
/ab{0,1}c/
|
2448 |
abc
|
2449 |
|
2450 |
/^abc$/
|
2451 |
abc
|
2452 |
*** Failers
|
2453 |
abbbbc
|
2454 |
abcc
|
2455 |
|
2456 |
/^abc/
|
2457 |
abcc
|
2458 |
|
2459 |
/^abc$/
|
2460 |
|
2461 |
/abc$/
|
2462 |
aabc
|
2463 |
*** Failers
|
2464 |
aabc
|
2465 |
aabcd
|
2466 |
|
2467 |
/^/
|
2468 |
abc
|
2469 |
|
2470 |
/$/
|
2471 |
abc
|
2472 |
|
2473 |
/a.c/
|
2474 |
abc
|
2475 |
axc
|
2476 |
|
2477 |
/a.*c/
|
2478 |
axyzc
|
2479 |
|
2480 |
/a[bc]d/
|
2481 |
abd
|
2482 |
*** Failers
|
2483 |
axyzd
|
2484 |
abc
|
2485 |
|
2486 |
/a[b-d]e/
|
2487 |
ace
|
2488 |
|
2489 |
/a[b-d]/
|
2490 |
aac
|
2491 |
|
2492 |
/a[-b]/
|
2493 |
a-
|
2494 |
|
2495 |
/a[b-]/
|
2496 |
a-
|
2497 |
|
2498 |
/a]/
|
2499 |
a]
|
2500 |
|
2501 |
/a[]]b/
|
2502 |
a]b
|
2503 |
|
2504 |
/a[^bc]d/
|
2505 |
aed
|
2506 |
*** Failers
|
2507 |
abd
|
2508 |
abd
|
2509 |
|
2510 |
/a[^-b]c/
|
2511 |
adc
|
2512 |
|
2513 |
/a[^]b]c/
|
2514 |
adc
|
2515 |
*** Failers
|
2516 |
a-c
|
2517 |
a]c
|
2518 |
|
2519 |
/\ba\b/
|
2520 |
a-
|
2521 |
-a
|
2522 |
-a-
|
2523 |
|
2524 |
/\by\b/
|
2525 |
*** Failers
|
2526 |
xy
|
2527 |
yz
|
2528 |
xyz
|
2529 |
|
2530 |
/\Ba\B/
|
2531 |
*** Failers
|
2532 |
a-
|
2533 |
-a
|
2534 |
-a-
|
2535 |
|
2536 |
/\By\b/
|
2537 |
xy
|
2538 |
|
2539 |
/\by\B/
|
2540 |
yz
|
2541 |
|
2542 |
/\By\B/
|
2543 |
xyz
|
2544 |
|
2545 |
/\w/
|
2546 |
a
|
2547 |
|
2548 |
/\W/
|
2549 |
-
|
2550 |
*** Failers
|
2551 |
-
|
2552 |
a
|
2553 |
|
2554 |
/a\sb/
|
2555 |
a b
|
2556 |
|
2557 |
/a\Sb/
|
2558 |
a-b
|
2559 |
*** Failers
|
2560 |
a-b
|
2561 |
a b
|
2562 |
|
2563 |
/\d/
|
2564 |
1
|
2565 |
|
2566 |
/\D/
|
2567 |
-
|
2568 |
*** Failers
|
2569 |
-
|
2570 |
1
|
2571 |
|
2572 |
/[\w]/
|
2573 |
a
|
2574 |
|
2575 |
/[\W]/
|
2576 |
-
|
2577 |
*** Failers
|
2578 |
-
|
2579 |
a
|
2580 |
|
2581 |
/a[\s]b/
|
2582 |
a b
|
2583 |
|
2584 |
/a[\S]b/
|
2585 |
a-b
|
2586 |
*** Failers
|
2587 |
a-b
|
2588 |
a b
|
2589 |
|
2590 |
/[\d]/
|
2591 |
1
|
2592 |
|
2593 |
/[\D]/
|
2594 |
-
|
2595 |
*** Failers
|
2596 |
-
|
2597 |
1
|
2598 |
|
2599 |
/ab|cd/
|
2600 |
abc
|
2601 |
abcd
|
2602 |
|
2603 |
/()ef/
|
2604 |
def
|
2605 |
|
2606 |
/$b/
|
2607 |
|
2608 |
/a\(b/
|
2609 |
a(b
|
2610 |
|
2611 |
/a\(*b/
|
2612 |
ab
|
2613 |
a((b
|
2614 |
|
2615 |
/a\\b/
|
2616 |
a\b
|
2617 |
|
2618 |
/((a))/
|
2619 |
abc
|
2620 |
|
2621 |
/(a)b(c)/
|
2622 |
abc
|
2623 |
|
2624 |
/a+b+c/
|
2625 |
aabbabc
|
2626 |
|
2627 |
/a{1,}b{1,}c/
|
2628 |
aabbabc
|
2629 |
|
2630 |
/a.+?c/
|
2631 |
abcabc
|
2632 |
|
2633 |
/(a+|b)*/
|
2634 |
ab
|
2635 |
|
2636 |
/(a+|b){0,}/
|
2637 |
ab
|
2638 |
|
2639 |
/(a+|b)+/
|
2640 |
ab
|
2641 |
|
2642 |
/(a+|b){1,}/
|
2643 |
ab
|
2644 |
|
2645 |
/(a+|b)?/
|
2646 |
ab
|
2647 |
|
2648 |
/(a+|b){0,1}/
|
2649 |
ab
|
2650 |
|
2651 |
/[^ab]*/
|
2652 |
cde
|
2653 |
|
2654 |
/abc/
|
2655 |
*** Failers
|
2656 |
b
|
2657 |
|
2658 |
|
2659 |
/a*/
|
2660 |
|
2661 |
|
2662 |
/([abc])*d/
|
2663 |
abbbcd
|
2664 |
|
2665 |
/([abc])*bcd/
|
2666 |
abcd
|
2667 |
|
2668 |
/a|b|c|d|e/
|
2669 |
e
|
2670 |
|
2671 |
/(a|b|c|d|e)f/
|
2672 |
ef
|
2673 |
|
2674 |
/abcd*efg/
|
2675 |
abcdefg
|
2676 |
|
2677 |
/ab*/
|
2678 |
xabyabbbz
|
2679 |
xayabbbz
|
2680 |
|
2681 |
/(ab|cd)e/
|
2682 |
abcde
|
2683 |
|
2684 |
/[abhgefdc]ij/
|
2685 |
hij
|
2686 |
|
2687 |
/^(ab|cd)e/
|
2688 |
|
2689 |
/(abc|)ef/
|
2690 |
abcdef
|
2691 |
|
2692 |
/(a|b)c*d/
|
2693 |
abcd
|
2694 |
|
2695 |
/(ab|ab*)bc/
|
2696 |
abc
|
2697 |
|
2698 |
/a([bc]*)c*/
|
2699 |
abc
|
2700 |
|
2701 |
/a([bc]*)(c*d)/
|
2702 |
abcd
|
2703 |
|
2704 |
/a([bc]+)(c*d)/
|
2705 |
abcd
|
2706 |
|
2707 |
/a([bc]*)(c+d)/
|
2708 |
abcd
|
2709 |
|
2710 |
/a[bcd]*dcdcde/
|
2711 |
adcdcde
|
2712 |
|
2713 |
/a[bcd]+dcdcde/
|
2714 |
*** Failers
|
2715 |
abcde
|
2716 |
adcdcde
|
2717 |
|
2718 |
/(ab|a)b*c/
|
2719 |
abc
|
2720 |
|
2721 |
/((a)(b)c)(d)/
|
2722 |
abcd
|
2723 |
|
2724 |
/[a-zA-Z_][a-zA-Z0-9_]*/
|
2725 |
alpha
|
2726 |
|
2727 |
/^a(bc+|b[eh])g|.h$/
|
2728 |
abh
|
2729 |
|
2730 |
/(bc+d$|ef*g.|h?i(j|k))/
|
2731 |
effgz
|
2732 |
ij
|
2733 |
reffgz
|
2734 |
*** Failers
|
2735 |
effg
|
2736 |
bcdd
|
2737 |
|
2738 |
/((((((((((a))))))))))/
|
2739 |
a
|
2740 |
|
2741 |
/((((((((((a))))))))))\10/
|
2742 |
aa
|
2743 |
|
2744 |
/(((((((((a)))))))))/
|
2745 |
a
|
2746 |
|
2747 |
/multiple words of text/
|
2748 |
*** Failers
|
2749 |
aa
|
2750 |
uh-uh
|
2751 |
|
2752 |
/multiple words/
|
2753 |
multiple words, yeah
|
2754 |
|
2755 |
/(.*)c(.*)/
|
2756 |
abcde
|
2757 |
|
2758 |
/\((.*), (.*)\)/
|
2759 |
(a, b)
|
2760 |
|
2761 |
/[k]/
|
2762 |
|
2763 |
/abcd/
|
2764 |
abcd
|
2765 |
|
2766 |
/a(bc)d/
|
2767 |
abcd
|
2768 |
|
2769 |
/a[-]?c/
|
2770 |
ac
|
2771 |
|
2772 |
/(abc)\1/
|
2773 |
abcabc
|
2774 |
|
2775 |
/([a-c]*)\1/
|
2776 |
abcabc
|
2777 |
|
2778 |
/(a)|\1/
|
2779 |
a
|
2780 |
*** Failers
|
2781 |
ab
|
2782 |
x
|
2783 |
|
2784 |
/(([a-c])b*?\2)*/
|
2785 |
ababbbcbc
|
2786 |
|
2787 |
/(([a-c])b*?\2){3}/
|
2788 |
ababbbcbc
|
2789 |
|
2790 |
/((\3|b)\2(a)x)+/
|
2791 |
aaaxabaxbaaxbbax
|
2792 |
|
2793 |
/((\3|b)\2(a)){2,}/
|
2794 |
bbaababbabaaaaabbaaaabba
|
2795 |
|
2796 |
/abc/i
|
2797 |
ABC
|
2798 |
XABCY
|
2799 |
ABABC
|
2800 |
*** Failers
|
2801 |
aaxabxbaxbbx
|
2802 |
XBC
|
2803 |
AXC
|
2804 |
ABX
|
2805 |
|
2806 |
/ab*c/i
|
2807 |
ABC
|
2808 |
|
2809 |
/ab*bc/i
|
2810 |
ABC
|
2811 |
ABBC
|
2812 |
|
2813 |
/ab*?bc/i
|
2814 |
ABBBBC
|
2815 |
|
2816 |
/ab{0,}?bc/i
|
2817 |
ABBBBC
|
2818 |
|
2819 |
/ab+?bc/i
|
2820 |
ABBC
|
2821 |
|
2822 |
/ab+bc/i
|
2823 |
*** Failers
|
2824 |
ABC
|
2825 |
ABQ
|
2826 |
|
2827 |
/ab{1,}bc/i
|
2828 |
|
2829 |
/ab+bc/i
|
2830 |
ABBBBC
|
2831 |
|
2832 |
/ab{1,}?bc/i
|
2833 |
ABBBBC
|
2834 |
|
2835 |
/ab{1,3}?bc/i
|
2836 |
ABBBBC
|
2837 |
|
2838 |
/ab{3,4}?bc/i
|
2839 |
ABBBBC
|
2840 |
|
2841 |
/ab{4,5}?bc/i
|
2842 |
*** Failers
|
2843 |
ABQ
|
2844 |
ABBBBC
|
2845 |
|
2846 |
/ab??bc/i
|
2847 |
ABBC
|
2848 |
ABC
|
2849 |
|
2850 |
/ab{0,1}?bc/i
|
2851 |
ABC
|
2852 |
|
2853 |
/ab??bc/i
|
2854 |
|
2855 |
/ab??c/i
|
2856 |
ABC
|
2857 |
|
2858 |
/ab{0,1}?c/i
|
2859 |
ABC
|
2860 |
|
2861 |
/^abc$/i
|
2862 |
ABC
|
2863 |
*** Failers
|
2864 |
ABBBBC
|
2865 |
ABCC
|
2866 |
|
2867 |
/^abc/i
|
2868 |
ABCC
|
2869 |
|
2870 |
/^abc$/i
|
2871 |
|
2872 |
/abc$/i
|
2873 |
AABC
|
2874 |
|
2875 |
/^/i
|
2876 |
ABC
|
2877 |
|
2878 |
/$/i
|
2879 |
ABC
|
2880 |
|
2881 |
/a.c/i
|
2882 |
ABC
|
2883 |
AXC
|
2884 |
|
2885 |
/a.*?c/i
|
2886 |
AXYZC
|
2887 |
|
2888 |
/a.*c/i
|
2889 |
*** Failers
|
2890 |
AABC
|
2891 |
AXYZD
|
2892 |
|
2893 |
/a[bc]d/i
|
2894 |
ABD
|
2895 |
|
2896 |
/a[b-d]e/i
|
2897 |
ACE
|
2898 |
*** Failers
|
2899 |
ABC
|
2900 |
ABD
|
2901 |
|
2902 |
/a[b-d]/i
|
2903 |
AAC
|
2904 |
|
2905 |
/a[-b]/i
|
2906 |
A-
|
2907 |
|
2908 |
/a[b-]/i
|
2909 |
A-
|
2910 |
|
2911 |
/a]/i
|
2912 |
A]
|
2913 |
|
2914 |
/a[]]b/i
|
2915 |
A]B
|
2916 |
|
2917 |
/a[^bc]d/i
|
2918 |
AED
|
2919 |
|
2920 |
/a[^-b]c/i
|
2921 |
ADC
|
2922 |
*** Failers
|
2923 |
ABD
|
2924 |
A-C
|
2925 |
|
2926 |
/a[^]b]c/i
|
2927 |
ADC
|
2928 |
|
2929 |
/ab|cd/i
|
2930 |
ABC
|
2931 |
ABCD
|
2932 |
|
2933 |
/()ef/i
|
2934 |
DEF
|
2935 |
|
2936 |
/$b/i
|
2937 |
*** Failers
|
2938 |
A]C
|
2939 |
B
|
2940 |
|
2941 |
/a\(b/i
|
2942 |
A(B
|
2943 |
|
2944 |
/a\(*b/i
|
2945 |
AB
|
2946 |
A((B
|
2947 |
|
2948 |
/a\\b/i
|
2949 |
A\B
|
2950 |
|
2951 |
/((a))/i
|
2952 |
ABC
|
2953 |
|
2954 |
/(a)b(c)/i
|
2955 |
ABC
|
2956 |
|
2957 |
/a+b+c/i
|
2958 |
AABBABC
|
2959 |
|
2960 |
/a{1,}b{1,}c/i
|
2961 |
AABBABC
|
2962 |
|
2963 |
/a.+?c/i
|
2964 |
ABCABC
|
2965 |
|
2966 |
/a.*?c/i
|
2967 |
ABCABC
|
2968 |
|
2969 |
/a.{0,5}?c/i
|
2970 |
ABCABC
|
2971 |
|
2972 |
/(a+|b)*/i
|
2973 |
AB
|
2974 |
|
2975 |
/(a+|b){0,}/i
|
2976 |
AB
|
2977 |
|
2978 |
/(a+|b)+/i
|
2979 |
AB
|
2980 |
|
2981 |
/(a+|b){1,}/i
|
2982 |
AB
|
2983 |
|
2984 |
/(a+|b)?/i
|
2985 |
AB
|
2986 |
|
2987 |
/(a+|b){0,1}/i
|
2988 |
AB
|
2989 |
|
2990 |
/(a+|b){0,1}?/i
|
2991 |
AB
|
2992 |
|
2993 |
/[^ab]*/i
|
2994 |
CDE
|
2995 |
|
2996 |
/abc/i
|
2997 |
|
2998 |
/a*/i
|
2999 |
|
3000 |
|
3001 |
/([abc])*d/i
|
3002 |
ABBBCD
|
3003 |
|
3004 |
/([abc])*bcd/i
|
3005 |
ABCD
|
3006 |
|
3007 |
/a|b|c|d|e/i
|
3008 |
E
|
3009 |
|
3010 |
/(a|b|c|d|e)f/i
|
3011 |
EF
|
3012 |
|
3013 |
/abcd*efg/i
|
3014 |
ABCDEFG
|
3015 |
|
3016 |
/ab*/i
|
3017 |
XABYABBBZ
|
3018 |
XAYABBBZ
|
3019 |
|
3020 |
/(ab|cd)e/i
|
3021 |
ABCDE
|
3022 |
|
3023 |
/[abhgefdc]ij/i
|
3024 |
HIJ
|
3025 |
|
3026 |
/^(ab|cd)e/i
|
3027 |
ABCDE
|
3028 |
|
3029 |
/(abc|)ef/i
|
3030 |
ABCDEF
|
3031 |
|
3032 |
/(a|b)c*d/i
|
3033 |
ABCD
|
3034 |
|
3035 |
/(ab|ab*)bc/i
|
3036 |
ABC
|
3037 |
|
3038 |
/a([bc]*)c*/i
|
3039 |
ABC
|
3040 |
|
3041 |
/a([bc]*)(c*d)/i
|
3042 |
ABCD
|
3043 |
|
3044 |
/a([bc]+)(c*d)/i
|
3045 |
ABCD
|
3046 |
|
3047 |
/a([bc]*)(c+d)/i
|
3048 |
ABCD
|
3049 |
|
3050 |
/a[bcd]*dcdcde/i
|
3051 |
ADCDCDE
|
3052 |
|
3053 |
/a[bcd]+dcdcde/i
|
3054 |
|
3055 |
/(ab|a)b*c/i
|
3056 |
ABC
|
3057 |
|
3058 |
/((a)(b)c)(d)/i
|
3059 |
ABCD
|
3060 |
|
3061 |
/[a-zA-Z_][a-zA-Z0-9_]*/i
|
3062 |
ALPHA
|
3063 |
|
3064 |
/^a(bc+|b[eh])g|.h$/i
|
3065 |
ABH
|
3066 |
|
3067 |
/(bc+d$|ef*g.|h?i(j|k))/i
|
3068 |
EFFGZ
|
3069 |
IJ
|
3070 |
REFFGZ
|
3071 |
*** Failers
|
3072 |
ADCDCDE
|
3073 |
EFFG
|
3074 |
BCDD
|
3075 |
|
3076 |
/((((((((((a))))))))))/i
|
3077 |
A
|
3078 |
|
3079 |
/((((((((((a))))))))))\10/i
|
3080 |
AA
|
3081 |
|
3082 |
/(((((((((a)))))))))/i
|
3083 |
A
|
3084 |
|
3085 |
/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
|
3086 |
A
|
3087 |
|
3088 |
/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
|
3089 |
C
|
3090 |
|
3091 |
/multiple words of text/i
|
3092 |
*** Failers
|
3093 |
AA
|
3094 |
UH-UH
|
3095 |
|
3096 |
/multiple words/i
|
3097 |
MULTIPLE WORDS, YEAH
|
3098 |
|
3099 |
/(.*)c(.*)/i
|
3100 |
ABCDE
|
3101 |
|
3102 |
/\((.*), (.*)\)/i
|
3103 |
(A, B)
|
3104 |
|
3105 |
/[k]/i
|
3106 |
|
3107 |
/abcd/i
|
3108 |
ABCD
|
3109 |
|
3110 |
/a(bc)d/i
|
3111 |
ABCD
|
3112 |
|
3113 |
/a[-]?c/i
|
3114 |
AC
|
3115 |
|
3116 |
/(abc)\1/i
|
3117 |
ABCABC
|
3118 |
|
3119 |
/([a-c]*)\1/i
|
3120 |
ABCABC
|
3121 |
|
3122 |
/a(?!b)./
|
3123 |
abad
|
3124 |
|
3125 |
/a(?=d)./
|
3126 |
abad
|
3127 |
|
3128 |
/a(?=c|d)./
|
3129 |
abad
|
3130 |
|
3131 |
/a(?:b|c|d)(.)/
|
3132 |
ace
|
3133 |
|
3134 |
/a(?:b|c|d)*(.)/
|
3135 |
ace
|
3136 |
|
3137 |
/a(?:b|c|d)+?(.)/
|
3138 |
ace
|
3139 |
acdbcdbe
|
3140 |
|
3141 |
/a(?:b|c|d)+(.)/
|
3142 |
acdbcdbe
|
3143 |
|
3144 |
/a(?:b|c|d){2}(.)/
|
3145 |
acdbcdbe
|
3146 |
|
3147 |
/a(?:b|c|d){4,5}(.)/
|
3148 |
acdbcdbe
|
3149 |
|
3150 |
/a(?:b|c|d){4,5}?(.)/
|
3151 |
acdbcdbe
|
3152 |
|
3153 |
/((foo)|(bar))*/
|
3154 |
foobar
|
3155 |
|
3156 |
/a(?:b|c|d){6,7}(.)/
|
3157 |
acdbcdbe
|
3158 |
|
3159 |
/a(?:b|c|d){6,7}?(.)/
|
3160 |
acdbcdbe
|
3161 |
|
3162 |
/a(?:b|c|d){5,6}(.)/
|
3163 |
acdbcdbe
|
3164 |
|
3165 |
/a(?:b|c|d){5,6}?(.)/
|
3166 |
acdbcdbe
|
3167 |
|
3168 |
/a(?:b|c|d){5,7}(.)/
|
3169 |
acdbcdbe
|
3170 |
|
3171 |
/a(?:b|c|d){5,7}?(.)/
|
3172 |
acdbcdbe
|
3173 |
|
3174 |
/a(?:b|(c|e){1,2}?|d)+?(.)/
|
3175 |
ace
|
3176 |
|
3177 |
/^(.+)?B/
|
3178 |
AB
|
3179 |
|
3180 |
/^([^a-z])|(\^)$/
|
3181 |
.
|
3182 |
|
3183 |
/^[<>]&/
|
3184 |
<&OUT
|
3185 |
|
3186 |
/^(a\1?){4}$/
|
3187 |
aaaaaaaaaa
|
3188 |
*** Failers
|
3189 |
AB
|
3190 |
aaaaaaaaa
|
3191 |
aaaaaaaaaaa
|
3192 |
|
3193 |
/^(a(?(1)\1)){4}$/
|
3194 |
aaaaaaaaaa
|
3195 |
*** Failers
|
3196 |
aaaaaaaaa
|
3197 |
aaaaaaaaaaa
|
3198 |
|
3199 |
/(?:(f)(o)(o)|(b)(a)(r))*/
|
3200 |
foobar
|
3201 |
|
3202 |
/(?<=a)b/
|
3203 |
ab
|
3204 |
*** Failers
|
3205 |
cb
|
3206 |
b
|
3207 |
|
3208 |
/(?<!c)b/
|
3209 |
ab
|
3210 |
b
|
3211 |
b
|
3212 |
|
3213 |
/(?:..)*a/
|
3214 |
aba
|
3215 |
|
3216 |
/(?:..)*?a/
|
3217 |
aba
|
3218 |
|
3219 |
/^(?:b|a(?=(.)))*\1/
|
3220 |
abc
|
3221 |
|
3222 |
/^(){3,5}/
|
3223 |
abc
|
3224 |
|
3225 |
/^(a+)*ax/
|
3226 |
aax
|
3227 |
|
3228 |
/^((a|b)+)*ax/
|
3229 |
aax
|
3230 |
|
3231 |
/^((a|bc)+)*ax/
|
3232 |
aax
|
3233 |
|
3234 |
/(a|x)*ab/
|
3235 |
cab
|
3236 |
|
3237 |
/(a)*ab/
|
3238 |
cab
|
3239 |
|
3240 |
/(?:(?i)a)b/
|
3241 |
ab
|
3242 |
|
3243 |
/((?i)a)b/
|
3244 |
ab
|
3245 |
|
3246 |
/(?:(?i)a)b/
|
3247 |
Ab
|
3248 |
|
3249 |
/((?i)a)b/
|
3250 |
Ab
|
3251 |
|
3252 |
/(?:(?i)a)b/
|
3253 |
*** Failers
|
3254 |
cb
|
3255 |
aB
|
3256 |
|
3257 |
/((?i)a)b/
|
3258 |
|
3259 |
/(?i:a)b/
|
3260 |
ab
|
3261 |
|
3262 |
/((?i:a))b/
|
3263 |
ab
|
3264 |
|
3265 |
/(?i:a)b/
|
3266 |
Ab
|
3267 |
|
3268 |
/((?i:a))b/
|
3269 |
Ab
|
3270 |
|
3271 |
/(?i:a)b/
|
3272 |
*** Failers
|
3273 |
aB
|
3274 |
aB
|
3275 |
|
3276 |
/((?i:a))b/
|
3277 |
|
3278 |
/(?:(?-i)a)b/i
|
3279 |
ab
|
3280 |
|
3281 |
/((?-i)a)b/i
|
3282 |
ab
|
3283 |
|
3284 |
/(?:(?-i)a)b/i
|
3285 |
aB
|
3286 |
|
3287 |
/((?-i)a)b/i
|
3288 |
aB
|
3289 |
|
3290 |
/(?:(?-i)a)b/i
|
3291 |
*** Failers
|
3292 |
aB
|
3293 |
Ab
|
3294 |
|
3295 |
/((?-i)a)b/i
|
3296 |
|
3297 |
/(?:(?-i)a)b/i
|
3298 |
aB
|
3299 |
|
3300 |
/((?-i)a)b/i
|
3301 |
aB
|
3302 |
|
3303 |
/(?:(?-i)a)b/i
|
3304 |
*** Failers
|
3305 |
Ab
|
3306 |
AB
|
3307 |
|
3308 |
/((?-i)a)b/i
|
3309 |
|
3310 |
/(?-i:a)b/i
|
3311 |
ab
|
3312 |
|
3313 |
/((?-i:a))b/i
|
3314 |
ab
|
3315 |
|
3316 |
/(?-i:a)b/i
|
3317 |
aB
|
3318 |
|
3319 |
/((?-i:a))b/i
|
3320 |
aB
|
3321 |
|
3322 |
/(?-i:a)b/i
|
3323 |
*** Failers
|
3324 |
AB
|
3325 |
Ab
|
3326 |
|
3327 |
/((?-i:a))b/i
|
3328 |
|
3329 |
/(?-i:a)b/i
|
3330 |
aB
|
3331 |
|
3332 |
/((?-i:a))b/i
|
3333 |
aB
|
3334 |
|
3335 |
/(?-i:a)b/i
|
3336 |
*** Failers
|
3337 |
Ab
|
3338 |
AB
|
3339 |
|
3340 |
/((?-i:a))b/i
|
3341 |
|
3342 |
/((?-i:a.))b/i
|
3343 |
*** Failers
|
3344 |
AB
|
3345 |
a\nB
|
3346 |
|
3347 |
/((?s-i:a.))b/i
|
3348 |
a\nB
|
3349 |
|
3350 |
/(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
|
3351 |
cabbbb
|
3352 |
|
3353 |
/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
|
3354 |
caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
|
3355 |
|
3356 |
/(ab)\d\1/i
|
3357 |
Ab4ab
|
3358 |
ab4Ab
|
3359 |
|
3360 |
/foo\w*\d{4}baz/
|
3361 |
foobar1234baz
|
3362 |
|
3363 |
/x(~~)*(?:(?:F)?)?/
|
3364 |
x~~
|
3365 |
|
3366 |
/^a(?#xxx){3}c/
|
3367 |
aaac
|
3368 |
|
3369 |
/^a (?#xxx) (?#yyy) {3}c/x
|
3370 |
aaac
|
3371 |
|
3372 |
/(?<![cd])b/
|
3373 |
*** Failers
|
3374 |
B\nB
|
3375 |
dbcb
|
3376 |
|
3377 |
/(?<![cd])[ab]/
|
3378 |
dbaacb
|
3379 |
|
3380 |
/(?<!(c|d))b/
|
3381 |
|
3382 |
/(?<!(c|d))[ab]/
|
3383 |
dbaacb
|
3384 |
|
3385 |
/(?<!cd)[ab]/
|
3386 |
cdaccb
|
3387 |
|
3388 |
/^(?:a?b?)*$/
|
3389 |
\
|
3390 |
a
|
3391 |
ab
|
3392 |
aaa
|
3393 |
*** Failers
|
3394 |
dbcb
|
3395 |
a--
|
3396 |
aa--
|
3397 |
|
3398 |
/((?s)^a(.))((?m)^b$)/
|
3399 |
a\nb\nc\n
|
3400 |
|
3401 |
/((?m)^b$)/
|
3402 |
a\nb\nc\n
|
3403 |
|
3404 |
/(?m)^b/
|
3405 |
a\nb\n
|
3406 |
|
3407 |
/(?m)^(b)/
|
3408 |
a\nb\n
|
3409 |
|
3410 |
/((?m)^b)/
|
3411 |
a\nb\n
|
3412 |
|
3413 |
/\n((?m)^b)/
|
3414 |
a\nb\n
|
3415 |
|
3416 |
/((?s).)c(?!.)/
|
3417 |
a\nb\nc\n
|
3418 |
a\nb\nc\n
|
3419 |
|
3420 |
/((?s)b.)c(?!.)/
|
3421 |
a\nb\nc\n
|
3422 |
a\nb\nc\n
|
3423 |
|
3424 |
/^b/
|
3425 |
|
3426 |
/()^b/
|
3427 |
*** Failers
|
3428 |
a\nb\nc\n
|
3429 |
a\nb\nc\n
|
3430 |
|
3431 |
/((?m)^b)/
|
3432 |
a\nb\nc\n
|
3433 |
|
3434 |
/(x)?(?(1)a|b)/
|
3435 |
*** Failers
|
3436 |
a
|
3437 |
a
|
3438 |
|
3439 |
/(x)?(?(1)b|a)/
|
3440 |
a
|
3441 |
|
3442 |
/()?(?(1)b|a)/
|
3443 |
a
|
3444 |
|
3445 |
/()(?(1)b|a)/
|
3446 |
|
3447 |
/()?(?(1)a|b)/
|
3448 |
a
|
3449 |
|
3450 |
/^(\()?blah(?(1)(\)))$/
|
3451 |
(blah)
|
3452 |
blah
|
3453 |
*** Failers
|
3454 |
a
|
3455 |
blah)
|
3456 |
(blah
|
3457 |
|
3458 |
/^(\(+)?blah(?(1)(\)))$/
|
3459 |
(blah)
|
3460 |
blah
|
3461 |
*** Failers
|
3462 |
blah)
|
3463 |
(blah
|
3464 |
|
3465 |
/(?(?!a)a|b)/
|
3466 |
|
3467 |
/(?(?!a)b|a)/
|
3468 |
a
|
3469 |
|
3470 |
/(?(?=a)b|a)/
|
3471 |
*** Failers
|
3472 |
a
|
3473 |
a
|
3474 |
|
3475 |
/(?(?=a)a|b)/
|
3476 |
a
|
3477 |
|
3478 |
/(?=(a+?))(\1ab)/
|
3479 |
aaab
|
3480 |
|
3481 |
/^(?=(a+?))\1ab/
|
3482 |
|
3483 |
/(\w+:)+/
|
3484 |
one:
|
3485 |
|
3486 |
/$(?<=^(a))/
|
3487 |
a
|
3488 |
|
3489 |
/(?=(a+?))(\1ab)/
|
3490 |
aaab
|
3491 |
|
3492 |
/^(?=(a+?))\1ab/
|
3493 |
*** Failers
|
3494 |
aaab
|
3495 |
aaab
|
3496 |
|
3497 |
/([\w:]+::)?(\w+)$/
|
3498 |
abcd
|
3499 |
xy:z:::abcd
|
3500 |
|
3501 |
/^[^bcd]*(c+)/
|
3502 |
aexycd
|
3503 |
|
3504 |
/(a*)b+/
|
3505 |
caab
|
3506 |
|
3507 |
/([\w:]+::)?(\w+)$/
|
3508 |
abcd
|
3509 |
xy:z:::abcd
|
3510 |
*** Failers
|
3511 |
abcd:
|
3512 |
abcd:
|
3513 |
|
3514 |
/^[^bcd]*(c+)/
|
3515 |
aexycd
|
3516 |
|
3517 |
/(>a+)ab/
|
3518 |
|
3519 |
/(?>a+)b/
|
3520 |
aaab
|
3521 |
|
3522 |
/([[:]+)/
|
3523 |
a:[b]:
|
3524 |
|
3525 |
/([[=]+)/
|
3526 |
a=[b]=
|
3527 |
|
3528 |
/([[.]+)/
|
3529 |
a.[b].
|
3530 |
|
3531 |
/((?>a+)b)/
|
3532 |
aaab
|
3533 |
|
3534 |
/(?>(a+))b/
|
3535 |
aaab
|
3536 |
|
3537 |
/((?>[^()]+)|\([^()]*\))+/
|
3538 |
((abc(ade)ufh()()x
|
3539 |
|
3540 |
/a\Z/
|
3541 |
*** Failers
|
3542 |
aaab
|
3543 |
a\nb\n
|
3544 |
|
3545 |
/b\Z/
|
3546 |
a\nb\n
|
3547 |
|
3548 |
/b\z/
|
3549 |
|
3550 |
/b\Z/
|
3551 |
a\nb
|
3552 |
|
3553 |
/b\z/
|
3554 |
a\nb
|
3555 |
*** Failers
|
3556 |
|
3557 |
/^(?>(?(1)\.|())[^\W_](?>[a-z0-9-]*[^\W_])?)+$/
|
3558 |
a
|
3559 |
abc
|
3560 |
a-b
|
3561 |
0-9
|
3562 |
a.b
|
3563 |
5.6.7
|
3564 |
the.quick.brown.fox
|
3565 |
a100.b200.300c
|
3566 |
12-ab.1245
|
3567 |
*** Failers
|
3568 |
\
|
3569 |
.a
|
3570 |
-a
|
3571 |
a-
|
3572 |
a.
|
3573 |
a_b
|
3574 |
a.-
|
3575 |
a..
|
3576 |
ab..bc
|
3577 |
the.quick.brown.fox-
|
3578 |
the.quick.brown.fox.
|
3579 |
the.quick.brown.fox_
|
3580 |
the.quick.brown.fox+
|
3581 |
|
3582 |
/(?>.*)(?<=(abcd|wxyz))/
|
3583 |
alphabetabcd
|
3584 |
endingwxyz
|
3585 |
*** Failers
|
3586 |
a rather long string that doesn't end with one of them
|
3587 |
|
3588 |
/word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
|
3589 |
word cat dog elephant mussel cow horse canary baboon snake shark otherword
|
3590 |
word cat dog elephant mussel cow horse canary baboon snake shark
|
3591 |
|
3592 |
/word (?>[a-zA-Z0-9]+ ){0,30}otherword/
|
3593 |
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
|
3594 |
|
3595 |
/(?<=\d{3}(?!999))foo/
|
3596 |
999foo
|
3597 |
123999foo
|
3598 |
*** Failers
|
3599 |
123abcfoo
|
3600 |
|
3601 |
/(?<=(?!...999)\d{3})foo/
|
3602 |
999foo
|
3603 |
123999foo
|
3604 |
*** Failers
|
3605 |
123abcfoo
|
3606 |
|
3607 |
/(?<=\d{3}(?!999)...)foo/
|
3608 |
123abcfoo
|
3609 |
123456foo
|
3610 |
*** Failers
|
3611 |
123999foo
|
3612 |
|
3613 |
/(?<=\d{3}...)(?<!999)foo/
|
3614 |
123abcfoo
|
3615 |
123456foo
|
3616 |
*** Failers
|
3617 |
123999foo
|
3618 |
|
3619 |
/<a[\s]+href[\s]*=[\s]* # find <a href=
|
3620 |
([\"\'])? # find single or double quote
|
3621 |
(?(1) (.*?)\1 | ([^\s]+)) # if quote found, match up to next matching
|
3622 |
# quote, otherwise match up to next space
|
3623 |
/isx
|
3624 |
<a href=abcd xyz
|
3625 |
<a href=\"abcd xyz pqr\" cats
|
3626 |
<a href=\'abcd xyz pqr\' cats
|
3627 |
|
3628 |
/<a\s+href\s*=\s* # find <a href=
|
3629 |
(["'])? # find single or double quote
|
3630 |
(?(1) (.*?)\1 | (\S+)) # if quote found, match up to next matching
|
3631 |
# quote, otherwise match up to next space
|
3632 |
/isx
|
3633 |
<a href=abcd xyz
|
3634 |
<a href=\"abcd xyz pqr\" cats
|
3635 |
<a href = \'abcd xyz pqr\' cats
|
3636 |
|
3637 |
/<a\s+href(?>\s*)=(?>\s*) # find <a href=
|
3638 |
(["'])? # find single or double quote
|
3639 |
(?(1) (.*?)\1 | (\S+)) # if quote found, match up to next matching
|
3640 |
# quote, otherwise match up to next space
|
3641 |
/isx
|
3642 |
<a href=abcd xyz
|
3643 |
<a href=\"abcd xyz pqr\" cats
|
3644 |
<a href = \'abcd xyz pqr\' cats
|
3645 |
|
3646 |
/((Z)+|A)*/
|
3647 |
ZABCDEFG
|
3648 |
|
3649 |
/(Z()|A)*/
|
3650 |
ZABCDEFG
|
3651 |
|
3652 |
/(Z(())|A)*/
|
3653 |
ZABCDEFG
|
3654 |
|
3655 |
/((?>Z)+|A)*/
|
3656 |
ZABCDEFG
|
3657 |
|
3658 |
/((?>)+|A)*/
|
3659 |
ZABCDEFG
|
3660 |
|
3661 |
/a*/g
|
3662 |
abbab
|
3663 |
|
3664 |
/^[\d-a]/
|
3665 |
abcde
|
3666 |
-things
|
3667 |
0digit
|
3668 |
*** Failers
|
3669 |
bcdef
|
3670 |
|
3671 |
/[[:space:]]+/
|
3672 |
> \x09\x0a\x0c\x0d\x0b<
|
3673 |
|
3674 |
/[[:blank:]]+/
|
3675 |
> \x09\x0a\x0c\x0d\x0b<
|
3676 |
|
3677 |
/[\s]+/
|
3678 |
> \x09\x0a\x0c\x0d\x0b<
|
3679 |
|
3680 |
/\s+/
|
3681 |
> \x09\x0a\x0c\x0d\x0b<
|
3682 |
|
3683 |
/ab/x
|
3684 |
ab
|
3685 |
|
3686 |
/(?!\A)x/m
|
3687 |
a\nxb\n
|
3688 |
|
3689 |
/(?!^)x/m
|
3690 |
a\nxb\n
|
3691 |
|
3692 |
/abc\Qabc\Eabc/
|
3693 |
abcabcabc
|
3694 |
|
3695 |
/abc\Q(*+|\Eabc/
|
3696 |
abc(*+|abc
|
3697 |
|
3698 |
/ abc\Q abc\Eabc/x
|
3699 |
abc abcabc
|
3700 |
*** Failers
|
3701 |
abcabcabc
|
3702 |
|
3703 |
/abc#comment
|
3704 |
\Q#not comment
|
3705 |
literal\E/x
|
3706 |
abc#not comment\n literal
|
3707 |
|
3708 |
/abc#comment
|
3709 |
\Q#not comment
|
3710 |
literal/x
|
3711 |
abc#not comment\n literal
|
3712 |
|
3713 |
/abc#comment
|
3714 |
\Q#not comment
|
3715 |
literal\E #more comment
|
3716 |
/x
|
3717 |
abc#not comment\n literal
|
3718 |
|
3719 |
/abc#comment
|
3720 |
\Q#not comment
|
3721 |
literal\E #more comment/x
|
3722 |
abc#not comment\n literal
|
3723 |
|
3724 |
/\Qabc\$xyz\E/
|
3725 |
abc\\\$xyz
|
3726 |
|
3727 |
/\Qabc\E\$\Qxyz\E/
|
3728 |
abc\$xyz
|
3729 |
|
3730 |
/\Gabc/
|
3731 |
abc
|
3732 |
*** Failers
|
3733 |
xyzabc
|
3734 |
|
3735 |
/\Gabc./g
|
3736 |
abc1abc2xyzabc3
|
3737 |
|
3738 |
/abc./g
|
3739 |
abc1abc2xyzabc3
|
3740 |
|
3741 |
/a(?x: b c )d/
|
3742 |
XabcdY
|
3743 |
*** Failers
|
3744 |
Xa b c d Y
|
3745 |
|
3746 |
/((?x)x y z | a b c)/
|
3747 |
XabcY
|
3748 |
AxyzB
|
3749 |
|
3750 |
/(?i)AB(?-i)C/
|
3751 |
XabCY
|
3752 |
*** Failers
|
3753 |
XabcY
|
3754 |
|
3755 |
/((?i)AB(?-i)C|D)E/
|
3756 |
abCE
|
3757 |
DE
|
3758 |
*** Failers
|
3759 |
abcE
|
3760 |
abCe
|
3761 |
dE
|
3762 |
De
|
3763 |
|
3764 |
/(.*)\d+\1/
|
3765 |
abc123abc
|
3766 |
abc123bc
|
3767 |
|
3768 |
/(.*)\d+\1/s
|
3769 |
abc123abc
|
3770 |
abc123bc
|
3771 |
|
3772 |
/((.*))\d+\1/
|
3773 |
abc123abc
|
3774 |
abc123bc
|
3775 |
|
3776 |
/-- This tests for an IPv6 address in the form where it can have up to
|
3777 |
eight components, one and only one of which is empty. This must be
|
3778 |
an internal component. --/
|
3779 |
|
3780 |
/^(?!:) # colon disallowed at start
|
3781 |
(?: # start of item
|
3782 |
(?: [0-9a-f]{1,4} | # 1-4 hex digits or
|
3783 |
(?(1)0 | () ) ) # if null previously matched, fail; else null
|
3784 |
: # followed by colon
|
3785 |
){1,7} # end item; 1-7 of them required
|
3786 |
[0-9a-f]{1,4} $ # final hex number at end of string
|
3787 |
(?(1)|.) # check that there was an empty component
|
3788 |
/xi
|
3789 |
a123::a123
|
3790 |
a123:b342::abcd
|
3791 |
a123:b342::324e:abcd
|
3792 |
a123:ddde:b342::324e:abcd
|
3793 |
a123:ddde:b342::324e:dcba:abcd
|
3794 |
a123:ddde:9999:b342::324e:dcba:abcd
|
3795 |
*** Failers
|
3796 |
1:2:3:4:5:6:7:8
|
3797 |
a123:bce:ddde:9999:b342::324e:dcba:abcd
|
3798 |
a123::9999:b342::324e:dcba:abcd
|
3799 |
abcde:2:3:4:5:6:7:8
|
3800 |
::1
|
3801 |
abcd:fee0:123::
|
3802 |
:1
|
3803 |
1:
|
3804 |
|
3805 |
/[z\Qa-d]\E]/
|
3806 |
z
|
3807 |
a
|
3808 |
-
|
3809 |
d
|
3810 |
]
|
3811 |
*** Failers
|
3812 |
b
|
3813 |
|
3814 |
/[\z\C]/
|
3815 |
z
|
3816 |
C
|
3817 |
|
3818 |
/\M/
|
3819 |
M
|
3820 |
|
3821 |
/(a+)*b/
|
3822 |
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
3823 |
|
3824 |
/(?i)reg(?:ul(?:[a]|ae)r|ex)/
|
3825 |
REGular
|
3826 |
regulaer
|
3827 |
Regex
|
3828 |
regulr
|
3829 |
|
3830 |
/[--]+/
|
3831 |
|
3832 |
|
3833 |
|
3834 |
|
3835 |
|
3836 |
/(?<=Z)X./
|
3837 |
\x84XAZXB
|
3838 |
|
3839 |
/ab cd (?x) de fg/
|
3840 |
ab cd defg
|
3841 |
|
3842 |
/ab cd(?x) de fg/
|
3843 |
ab cddefg
|
3844 |
** Failers
|
3845 |
abcddefg
|
3846 |
|
3847 |
/(?<![^f]oo)(bar)/
|
3848 |
foobarX
|
3849 |
** Failers
|
3850 |
boobarX
|
3851 |
|
3852 |
/(?<![^f])X/
|
3853 |
offX
|
3854 |
** Failers
|
3855 |
onyX
|
3856 |
|
3857 |
/(?<=[^f])X/
|
3858 |
onyX
|
3859 |
** Failers
|
3860 |
offX
|
3861 |
|
3862 |
/^/mg
|
3863 |
a\nb\nc\n
|
3864 |
\
|
3865 |
|
3866 |
/(?<=C\n)^/mg
|
3867 |
A\nC\nC\n
|
3868 |
|
3869 |
/(?:(?(1)a|b)(X))+/
|
3870 |
bXaX
|
3871 |
|
3872 |
/(?:(?(1)\1a|b)(X|Y))+/
|
3873 |
bXXaYYaY
|
3874 |
bXYaXXaX
|
3875 |
|
3876 |
/()()()()()()()()()(?:(?(10)\10a|b)(X|Y))+/
|
3877 |
bXXaYYaY
|
3878 |
|
3879 |
/[[,abc,]+]/
|
3880 |
abc]
|
3881 |
a,b]
|
3882 |
[a,b,c]
|
3883 |
|
3884 |
/(?-x: )/x
|
3885 |
A\x20B
|
3886 |
|
3887 |
"(?x)(?-x: \s*#\s*)"
|
3888 |
A # B
|
3889 |
** Failers
|
3890 |
#
|
3891 |
|
3892 |
"(?x-is)(?:(?-ixs) \s*#\s*) include"
|
3893 |
A #include
|
3894 |
** Failers
|
3895 |
A#include
|
3896 |
A #Include
|
3897 |
|
3898 |
/a*b*\w/
|
3899 |
aaabbbb
|
3900 |
aaaa
|
3901 |
a
|
3902 |
|
3903 |
/a*b?\w/
|
3904 |
aaabbbb
|
3905 |
aaaa
|
3906 |
a
|
3907 |
|
3908 |
/a*b{0,4}\w/
|
3909 |
aaabbbb
|
3910 |
aaaa
|
3911 |
a
|
3912 |
|
3913 |
/a*b{0,}\w/
|
3914 |
aaabbbb
|
3915 |
aaaa
|
3916 |
a
|
3917 |
|
3918 |
/a*\d*\w/
|
3919 |
0a
|
3920 |
a
|
3921 |
|
3922 |
/a*b *\w/x
|
3923 |
a
|
3924 |
|
3925 |
/a*b#comment
|
3926 |
*\w/x
|
3927 |
a
|
3928 |
|
3929 |
/a* b *\w/x
|
3930 |
a
|
3931 |
|
3932 |
/^\w+=.*(\\\n.*)*/
|
3933 |
abc=xyz\\\npqr
|
3934 |
|
3935 |
/(?=(\w+))\1:/
|
3936 |
abcd:
|
3937 |
|
3938 |
/^(?=(\w+))\1:/
|
3939 |
abcd:
|
3940 |
|
3941 |
/^\Eabc/
|
3942 |
abc
|
3943 |
|
3944 |
/^[\Eabc]/
|
3945 |
a
|
3946 |
** Failers
|
3947 |
E
|
3948 |
|
3949 |
/^[a-\Ec]/
|
3950 |
b
|
3951 |
** Failers
|
3952 |
-
|
3953 |
E
|
3954 |
|
3955 |
/^[a\E\E-\Ec]/
|
3956 |
b
|
3957 |
** Failers
|
3958 |
-
|
3959 |
E
|
3960 |
|
3961 |
/^[\E\Qa\E-\Qz\E]+/
|
3962 |
b
|
3963 |
** Failers
|
3964 |
-
|
3965 |
|
3966 |
/^[a\Q]bc\E]/
|
3967 |
a
|
3968 |
]
|
3969 |
c
|
3970 |
|
3971 |
/^[a-\Q\E]/
|
3972 |
a
|
3973 |
-
|
3974 |
|
3975 |
/^(a()*)*/
|
3976 |
aaaa
|
3977 |
|
3978 |
/^(?:a(?:(?:))*)*/
|
3979 |
aaaa
|
3980 |
|
3981 |
/^(a()+)+/
|
3982 |
aaaa
|
3983 |
|
3984 |
/^(?:a(?:(?:))+)+/
|
3985 |
aaaa
|
3986 |
|
3987 |
/(a){0,3}(?(1)b|(c|))*D/
|
3988 |
abbD
|
3989 |
ccccD
|
3990 |
D
|
3991 |
|
3992 |
/(a|)*\d/
|
3993 |
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
3994 |
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
|
3995 |
|
3996 |
/(?>a|)*\d/
|
3997 |
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
3998 |
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
|
3999 |
|
4000 |
/(?:a|)*\d/
|
4001 |
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
4002 |
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
|
4003 |
|
4004 |
/\Z/g
|
4005 |
abc\n
|
4006 |
|
4007 |
/^(?s)(?>.*)(?<!\n)/
|
4008 |
abc
|
4009 |
abc\n
|
4010 |
|
4011 |
/^(?![^\n]*\n\z)/
|
4012 |
abc
|
4013 |
abc\n
|
4014 |
|
4015 |
/\z(?<!\n)/
|
4016 |
abc
|
4017 |
abc\n
|
4018 |
|
4019 |
/(.*(.)?)*/
|
4020 |
abcd
|
4021 |
|
4022 |
/( (A | (?(1)0|) )* )/x
|
4023 |
abcd
|
4024 |
|
4025 |
/( ( (?(1)0|) )* )/x
|
4026 |
abcd
|
4027 |
|
4028 |
/( (?(1)0|)* )/x
|
4029 |
abcd
|
4030 |
|
4031 |
/[[:abcd:xyz]]/
|
4032 |
a]
|
4033 |
:]
|
4034 |
|
4035 |
/[abc[:x\]pqr]/
|
4036 |
a
|
4037 |
[
|
4038 |
:
|
4039 |
]
|
4040 |
p
|
4041 |
|
4042 |
/.*[op][xyz]/
|
4043 |
fooabcfoo
|
4044 |
|
4045 |
/(?(?=.*b)b|^)/
|
4046 |
adc
|
4047 |
abc
|
4048 |
|
4049 |
/(?(?=^.*b)b|^)/
|
4050 |
adc
|
4051 |
abc
|
4052 |
|
4053 |
/(?(?=.*b)b|^)*/
|
4054 |
adc
|
4055 |
abc
|
4056 |
|
4057 |
/(?(?=.*b)b|^)+/
|
4058 |
adc
|
4059 |
abc
|
4060 |
|
4061 |
/(?(?=b).*b|^d)/
|
4062 |
abc
|
4063 |
|
4064 |
/(?(?=.*b).*b|^d)/
|
4065 |
abc
|
4066 |
|
4067 |
/^%((?(?=[a])[^%])|b)*%$/
|
4068 |
%ab%
|
4069 |
|
4070 |
/(?i)a(?-i)b|c/
|
4071 |
XabX
|
4072 |
XAbX
|
4073 |
CcC
|
4074 |
** Failers
|
4075 |
XABX
|
4076 |
|
4077 |
/[\x00-\xff\s]+/
|
4078 |
\x0a\x0b\x0c\x0d
|
4079 |
|
4080 |
/^\c/
|
4081 |
?
|
4082 |
|
4083 |
/(abc)\1/i
|
4084 |
abc
|
4085 |
|
4086 |
/(abc)\1/
|
4087 |
abc
|
4088 |
|
4089 |
/[^a]*/i
|
4090 |
12abc
|
4091 |
12ABC
|
4092 |
|
4093 |
/[^a]*+/i
|
4094 |
12abc
|
4095 |
12ABC
|
4096 |
|
4097 |
/[^a]*?X/i
|
4098 |
** Failers
|
4099 |
12abc
|
4100 |
12ABC
|
4101 |
|
4102 |
/[^a]+?X/i
|
4103 |
** Failers
|
4104 |
12abc
|
4105 |
12ABC
|
4106 |
|
4107 |
/[^a]?X/i
|
4108 |
12aXbcX
|
4109 |
12AXBCX
|
4110 |
BCX
|
4111 |
|
4112 |
/[^a]??X/i
|
4113 |
12aXbcX
|
4114 |
12AXBCX
|
4115 |
BCX
|
4116 |
|
4117 |
/[^a]?+X/i
|
4118 |
12aXbcX
|
4119 |
12AXBCX
|
4120 |
BCX
|
4121 |
|
4122 |
/[^a]{2,3}/i
|
4123 |
abcdef
|
4124 |
ABCDEF
|
4125 |
|
4126 |
/[^a]{2,3}?/i
|
4127 |
abcdef
|
4128 |
ABCDEF
|
4129 |
|
4130 |
/[^a]{2,3}+/i
|
4131 |
abcdef
|
4132 |
ABCDEF
|
4133 |
|
4134 |
/((a|)+)+Z/
|
4135 |
Z
|
4136 |
|
4137 |
/(a)b|(a)c/
|
4138 |
ac
|
4139 |
|
4140 |
/(?>(a))b|(a)c/
|
4141 |
ac
|
4142 |
|
4143 |
/(?=(a))ab|(a)c/
|
4144 |
ac
|
4145 |
|
4146 |
/((?>(a))b|(a)c)/
|
4147 |
ac
|
4148 |
|
4149 |
/((?>(a))b|(a)c)++/
|
4150 |
ac
|
4151 |
|
4152 |
/(?:(?>(a))b|(a)c)++/
|
4153 |
ac
|
4154 |
|
4155 |
/(?=(?>(a))b|(a)c)(..)/
|
4156 |
ac
|
4157 |
|
4158 |
/(?>(?>(a))b|(a)c)/
|
4159 |
ac
|
4160 |
|
4161 |
/(?:(?>([ab])))+a=/+
|
4162 |
=ba=
|
4163 |
|
4164 |
/(?>([ab]))+a=/+
|
4165 |
=ba=
|
4166 |
|
4167 |
/((?>(a+)b)+(aabab))/
|
4168 |
aaaabaaabaabab
|
4169 |
|
4170 |
/(?>a+|ab)+?c/
|
4171 |
aabc
|
4172 |
|
4173 |
/(?>a+|ab)+c/
|
4174 |
aabc
|
4175 |
|
4176 |
/(?:a+|ab)+c/
|
4177 |
aabc
|
4178 |
|
4179 |
/(?(?=(a))a)/
|
4180 |
a
|
4181 |
|
4182 |
/(?(?=(a))a)(b)/
|
4183 |
ab
|
4184 |
|
4185 |
/^(?:a|ab)++c/
|
4186 |
aaaabc
|
4187 |
|
4188 |
/^(?>a|ab)++c/
|
4189 |
aaaabc
|
4190 |
|
4191 |
/^(?:a|ab)+c/
|
4192 |
aaaabc
|
4193 |
|
4194 |
/(?=abc){3}abc/+
|
4195 |
abcabcabc
|
4196 |
** Failers
|
4197 |
xyz
|
4198 |
|
4199 |
/(?=abc)+abc/+
|
4200 |
abcabcabc
|
4201 |
** Failers
|
4202 |
xyz
|
4203 |
|
4204 |
/(?=abc)++abc/+
|
4205 |
abcabcabc
|
4206 |
** Failers
|
4207 |
xyz
|
4208 |
|
4209 |
/(?=abc){0}xyz/
|
4210 |
xyz
|
4211 |
|
4212 |
/(?=abc){1}xyz/
|
4213 |
** Failers
|
4214 |
xyz
|
4215 |
|
4216 |
/(?=(a))?./
|
4217 |
ab
|
4218 |
bc
|
4219 |
|
4220 |
/(?=(a))??./
|
4221 |
ab
|
4222 |
bc
|
4223 |
|
4224 |
/^(?=(?1))?[az]([abc])d/
|
4225 |
abd
|
4226 |
zcdxx
|
4227 |
|
4228 |
/^(?!a){0}\w+/
|
4229 |
aaaaa
|
4230 |
|
4231 |
/(?<=(abc))?xyz/
|
4232 |
abcxyz
|
4233 |
pqrxyz
|
4234 |
|
4235 |
/^[\g<a>]+/
|
4236 |
ggg<<<aaa>>>
|
4237 |
** Failers
|
4238 |
\\ga
|
4239 |
|
4240 |
/^[\ga]+/
|
4241 |
gggagagaxyz
|
4242 |
|
4243 |
/^[:a[:digit:]]+/
|
4244 |
aaaa444:::Z
|
4245 |
|
4246 |
/^[:a[:digit:]:b]+/
|
4247 |
aaaa444:::bbbZ
|
4248 |
|
4249 |
/[:a]xxx[b:]/
|
4250 |
:xxx:
|
4251 |
|
4252 |
/(?<=a{2})b/i
|
4253 |
xaabc
|
4254 |
** Failers
|
4255 |
xabc
|
4256 |
|
4257 |
/(?<!a{2})b/i
|
4258 |
xabc
|
4259 |
** Failers
|
4260 |
xaabc
|
4261 |
|
4262 |
/(?<=a\h)c/
|
4263 |
xa c
|
4264 |
|
4265 |
/(?<=[^a]{2})b/
|
4266 |
axxbc
|
4267 |
aAAbc
|
4268 |
** Failers
|
4269 |
xaabc
|
4270 |
|
4271 |
/(?<=[^a]{2})b/i
|
4272 |
axxbc
|
4273 |
** Failers
|
4274 |
aAAbc
|
4275 |
xaabc
|
4276 |
|
4277 |
/(?<=a\H)c/
|
4278 |
abc
|
4279 |
|
4280 |
/(?<=a\V)c/
|
4281 |
abc
|
4282 |
|
4283 |
/(?<=a\v)c/
|
4284 |
a\nc
|
4285 |
|
4286 |
/(?(?=c)c|d)++Y/
|
4287 |
XcccddYX
|
4288 |
|
4289 |
/(?(?=c)c|d)*+Y/
|
4290 |
XcccddYX
|
4291 |
|
4292 |
/^(a{2,3}){2,}+a/
|
4293 |
aaaaaaa
|
4294 |
** Failers
|
4295 |
aaaaaa
|
4296 |
aaaaaaaaa
|
4297 |
|
4298 |
/^(a{2,3})++a/
|
4299 |
** Failers
|
4300 |
aaaaaa
|
4301 |
|
4302 |
/^(a{2,3})*+a/
|
4303 |
** Failers
|
4304 |
aaaaaa
|
4305 |
|
4306 |
/ab\Cde/
|
4307 |
abXde
|
4308 |
|
4309 |
/(?<=ab\Cde)X/
|
4310 |
abZdeX
|
4311 |
|
4312 |
/a[\CD]b/
|
4313 |
aCb
|
4314 |
aDb
|
4315 |
|
4316 |
/a[\C-X]b/
|
4317 |
aJb
|
4318 |
|
4319 |
/\H\h\V\v/
|
4320 |
X X\x0a
|
4321 |
X\x09X\x0b
|
4322 |
** Failers
|
4323 |
\xa0 X\x0a
|
4324 |
|
4325 |
/\H*\h+\V?\v{3,4}/
|
4326 |
\x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a
|
4327 |
\x09\x20\xa0\x0a\x0b\x0c\x0d\x0a
|
4328 |
\x09\x20\xa0\x0a\x0b\x0c
|
4329 |
** Failers
|
4330 |
\x09\x20\xa0\x0a\x0b
|
4331 |
|
4332 |
/\H{3,4}/
|
4333 |
XY ABCDE
|
4334 |
XY PQR ST
|
4335 |
|
4336 |
/.\h{3,4}./
|
4337 |
XY AB PQRS
|
4338 |
|
4339 |
/\h*X\h?\H+Y\H?Z/
|
4340 |
>XNNNYZ
|
4341 |
> X NYQZ
|
4342 |
** Failers
|
4343 |
>XYZ
|
4344 |
> X NY Z
|
4345 |
|
4346 |
/\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/
|
4347 |
>XY\x0aZ\x0aA\x0bNN\x0c
|
4348 |
>\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
|
4349 |
|
4350 |
/(foo)\Kbar/
|
4351 |
foobar
|
4352 |
|
4353 |
/(foo)(\Kbar|baz)/
|
4354 |
foobar
|
4355 |
foobaz
|
4356 |
|
4357 |
/(foo\Kbar)baz/
|
4358 |
foobarbaz
|
4359 |
|
4360 |
/abc\K|def\K/g+
|
4361 |
Xabcdefghi
|
4362 |
|
4363 |
/ab\Kc|de\Kf/g+
|
4364 |
Xabcdefghi
|
4365 |
|
4366 |
/(?=C)/g+
|
4367 |
ABCDECBA
|
4368 |
|
4369 |
/^abc\K/+
|
4370 |
abcdef
|
4371 |
** Failers
|
4372 |
defabcxyz
|
4373 |
|
4374 |
/^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/
|
4375 |
ababababbbabZXXXX
|
4376 |
|
4377 |
/(?<A>tom|bon)-\g{A}/
|
4378 |
tom-tom
|
4379 |
bon-bon
|
4380 |
|
4381 |
/(^(a|b\g{-1}))/
|
4382 |
bacxxx
|
4383 |
|
4384 |
/(?|(abc)|(xyz))\1/
|
4385 |
abcabc
|
4386 |
xyzxyz
|
4387 |
** Failers
|
4388 |
abcxyz
|
4389 |
xyzabc
|
4390 |
|
4391 |
/(?|(abc)|(xyz))(?1)/
|
4392 |
abcabc
|
4393 |
xyzabc
|
4394 |
** Failers
|
4395 |
xyzxyz
|
4396 |
|
4397 |
/^X(?5)(a)(?|(b)|(q))(c)(d)(Y)/
|
4398 |
XYabcdY
|
4399 |
|
4400 |
/^X(?7)(a)(?|(b|(r)(s))|(q))(c)(d)(Y)/
|
4401 |
XYabcdY
|
4402 |
|
4403 |
/^X(?7)(a)(?|(b|(?|(r)|(t))(s))|(q))(c)(d)(Y)/
|
4404 |
XYabcdY
|
4405 |
|
4406 |
/(?'abc'\w+):\k<abc>{2}/
|
4407 |
a:aaxyz
|
4408 |
ab:ababxyz
|
4409 |
** Failers
|
4410 |
a:axyz
|
4411 |
ab:abxyz
|
4412 |
|
4413 |
/(?'abc'\w+):\g{abc}{2}/
|
4414 |
a:aaxyz
|
4415 |
ab:ababxyz
|
4416 |
** Failers
|
4417 |
a:axyz
|
4418 |
ab:abxyz
|
4419 |
|
4420 |
/^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x
|
4421 |
abd
|
4422 |
ce
|
4423 |
|
4424 |
/^(a.)\g-1Z/
|
4425 |
aXaXZ
|
4426 |
|
4427 |
/^(a.)\g{-1}Z/
|
4428 |
aXaXZ
|
4429 |
|
4430 |
/^(?(DEFINE) (?<A> a) (?<B> b) ) (?&A) (?&B) /x
|
4431 |
abcd
|
4432 |
|
4433 |
/(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT))
|
4434 |
(?(DEFINE)
|
4435 |
(?<NAME_PAT>[a-z]+)
|
4436 |
(?<ADDRESS_PAT>\d+)
|
4437 |
)/x
|
4438 |
metcalfe 33
|
4439 |
|
4440 |
/(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/
|
4441 |
1.2.3.4
|
4442 |
131.111.10.206
|
4443 |
10.0.0.0
|
4444 |
** Failers
|
4445 |
10.6
|
4446 |
455.3.4.5
|
4447 |
|
4448 |
/\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/
|
4449 |
1.2.3.4
|
4450 |
131.111.10.206
|
4451 |
10.0.0.0
|
4452 |
** Failers
|
4453 |
10.6
|
4454 |
455.3.4.5
|
4455 |
|
4456 |
/^(\w++|\s++)*$/
|
4457 |
now is the time for all good men to come to the aid of the party
|
4458 |
*** Failers
|
4459 |
this is not a line with only words and spaces!
|
4460 |
|
4461 |
/(\d++)(\w)/
|
4462 |
12345a
|
4463 |
*** Failers
|
4464 |
12345+
|
4465 |
|
4466 |
/a++b/
|
4467 |
aaab
|
4468 |
|
4469 |
/(a++b)/
|
4470 |
aaab
|
4471 |
|
4472 |
/(a++)b/
|
4473 |
aaab
|
4474 |
|
4475 |
/([^()]++|\([^()]*\))+/
|
4476 |
((abc(ade)ufh()()x
|
4477 |
|
4478 |
/\(([^()]++|\([^()]+\))+\)/
|
4479 |
(abc)
|
4480 |
(abc(def)xyz)
|
4481 |
*** Failers
|
4482 |
((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
4483 |
|
4484 |
/^([^()]|\((?1)*\))*$/
|
4485 |
abc
|
4486 |
a(b)c
|
4487 |
a(b(c))d
|
4488 |
*** Failers)
|
4489 |
a(b(c)d
|
4490 |
|
4491 |
/^>abc>([^()]|\((?1)*\))*<xyz<$/
|
4492 |
>abc>123<xyz<
|
4493 |
>abc>1(2)3<xyz<
|
4494 |
>abc>(1(2)3)<xyz<
|
4495 |
|
4496 |
/^(?:((.)(?1)\2|)|((.)(?3)\4|.))$/i
|
4497 |
1221
|
4498 |
Satanoscillatemymetallicsonatas
|
4499 |
AmanaplanacanalPanama
|
4500 |
AblewasIereIsawElba
|
4501 |
*** Failers
|
4502 |
Thequickbrownfox
|
4503 |
|
4504 |
/^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/
|
4505 |
12
|
4506 |
(((2+2)*-3)-7)
|
4507 |
-12
|
4508 |
*** Failers
|
4509 |
((2+2)*-3)-7)
|
4510 |
|
4511 |
/^(x(y|(?1){2})z)/
|
4512 |
xyz
|
4513 |
xxyzxyzz
|
4514 |
*** Failers
|
4515 |
xxyzz
|
4516 |
xxyzxyzxyzz
|
4517 |
|
4518 |
/((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/x
|
4519 |
<>
|
4520 |
<abcd>
|
4521 |
<abc <123> hij>
|
4522 |
<abc <def> hij>
|
4523 |
<abc<>def>
|
4524 |
<abc<>
|
4525 |
*** Failers
|
4526 |
<abc
|
4527 |
|
4528 |
/^a+(*FAIL)/
|
4529 |
aaaaaa
|
4530 |
|
4531 |
/a+b?c+(*FAIL)/
|
4532 |
aaabccc
|
4533 |
|
4534 |
/a+b?(*PRUNE)c+(*FAIL)/
|
4535 |
aaabccc
|
4536 |
|
4537 |
/a+b?(*COMMIT)c+(*FAIL)/
|
4538 |
aaabccc
|
4539 |
|
4540 |
/a+b?(*SKIP)c+(*FAIL)/
|
4541 |
aaabcccaaabccc
|
4542 |
|
4543 |
/^(?:aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/
|
4544 |
aaaxxxxxx
|
4545 |
aaa++++++
|
4546 |
bbbxxxxx
|
4547 |
bbb+++++
|
4548 |
cccxxxx
|
4549 |
ccc++++
|
4550 |
dddddddd
|
4551 |
|
4552 |
/^(aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/
|
4553 |
aaaxxxxxx
|
4554 |
aaa++++++
|
4555 |
bbbxxxxx
|
4556 |
bbb+++++
|
4557 |
cccxxxx
|
4558 |
ccc++++
|
4559 |
dddddddd
|
4560 |
|
4561 |
/a+b?(*THEN)c+(*FAIL)/
|
4562 |
aaabccc
|
4563 |
|
4564 |
/(A (A|B(*ACCEPT)|C) D)(E)/x
|
4565 |
AB
|
4566 |
ABX
|
4567 |
AADE
|
4568 |
ACDE
|
4569 |
** Failers
|
4570 |
AD
|
4571 |
|
4572 |
/^\W*+(?:((.)\W*+(?1)\W*+\2|)|((.)\W*+(?3)\W*+\4|\W*+.\W*+))\W*+$/i
|
4573 |
1221
|
4574 |
Satan, oscillate my metallic sonatas!
|
4575 |
A man, a plan, a canal: Panama!
|
4576 |
Able was I ere I saw Elba.
|
4577 |
*** Failers
|
4578 |
The quick brown fox
|
4579 |
|
4580 |
/^((.)(?1)\2|.)$/
|
4581 |
a
|
4582 |
aba
|
4583 |
aabaa
|
4584 |
abcdcba
|
4585 |
pqaabaaqp
|
4586 |
ablewasiereisawelba
|
4587 |
rhubarb
|
4588 |
the quick brown fox
|
4589 |
|
4590 |
/(a)(?<=b(?1))/
|
4591 |
baz
|
4592 |
** Failers
|
4593 |
caz
|
4594 |
|
4595 |
/(?<=b(?1))(a)/
|
4596 |
zbaaz
|
4597 |
** Failers
|
4598 |
aaa
|
4599 |
|
4600 |
/(?<X>a)(?<=b(?&X))/
|
4601 |
baz
|
4602 |
|
4603 |
/^(?|(abc)|(def))\1/
|
4604 |
abcabc
|
4605 |
defdef
|
4606 |
** Failers
|
4607 |
abcdef
|
4608 |
defabc
|
4609 |
|
4610 |
/^(?|(abc)|(def))(?1)/
|
4611 |
abcabc
|
4612 |
defabc
|
4613 |
** Failers
|
4614 |
defdef
|
4615 |
abcdef
|
4616 |
|
4617 |
/(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |b(?<quote> (?<apostrophe>')|(?<realquote>")) ) (?('quote')[a-z]+|[0-9]+)/xJ
|
4618 |
a\"aaaaa
|
4619 |
b\"aaaaa
|
4620 |
** Failers
|
4621 |
b\"11111
|
4622 |
|
4623 |
/(?:(?1)|B)(A(*F)|C)/
|
4624 |
ABCD
|
4625 |
CCD
|
4626 |
** Failers
|
4627 |
CAD
|
4628 |
|
4629 |
/^(?:(?1)|B)(A(*F)|C)/
|
4630 |
CCD
|
4631 |
BCD
|
4632 |
** Failers
|
4633 |
ABCD
|
4634 |
CAD
|
4635 |
BAD
|
4636 |
|
4637 |
/(?:(?1)|B)(A(*ACCEPT)XX|C)D/
|
4638 |
AAD
|
4639 |
ACD
|
4640 |
BAD
|
4641 |
BCD
|
4642 |
BAX
|
4643 |
** Failers
|
4644 |
ACX
|
4645 |
ABC
|
4646 |
|
4647 |
/(?(DEFINE)(A))B(?1)C/
|
4648 |
BAC
|
4649 |
|
4650 |
/(?(DEFINE)((A)\2))B(?1)C/
|
4651 |
BAAC
|
4652 |
|
4653 |
/(?<pn> \( ( [^()]++ | (?&pn) )* \) )/x
|
4654 |
(ab(cd)ef)
|
4655 |
|
4656 |
/^(?=a(*SKIP)b|ac)/
|
4657 |
** Failers
|
4658 |
ac
|
4659 |
|
4660 |
/^(?=a(*PRUNE)b)/
|
4661 |
ab
|
4662 |
** Failers
|
4663 |
ac
|
4664 |
|
4665 |
/^(?=a(*ACCEPT)b)/
|
4666 |
ac
|
4667 |
|
4668 |
/(?>a\Kb)/
|
4669 |
ab
|
4670 |
|
4671 |
/((?>a\Kb))/
|
4672 |
ab
|
4673 |
|
4674 |
/(a\Kb)/
|
4675 |
ab
|
4676 |
|
4677 |
/^a\Kcz|ac/
|
4678 |
ac
|
4679 |
|
4680 |
/(?>a\Kbz|ab)/
|
4681 |
ab
|
4682 |
|
4683 |
/^(?&t)(?(DEFINE)(?<t>a\Kb))$/
|
4684 |
ab
|
4685 |
|
4686 |
/^([^()]|\((?1)*\))*$/
|
4687 |
a(b)c
|
4688 |
a(b(c)d)e
|
4689 |
|
4690 |
/(?P<L1>(?P<L2>0)(?P>L1)|(?P>L2))/
|
4691 |
0
|
4692 |
00
|
4693 |
0000
|
4694 |
|
4695 |
/(?P<L1>(?P<L2>0)|(?P>L2)(?P>L1))/
|
4696 |
0
|
4697 |
00
|
4698 |
0000
|
4699 |
|
4700 |
/--- This one does fail, as expected, in Perl. It needs the complex item at the
|
4701 |
end of the pattern. A single letter instead of (B|D) makes it not fail,
|
4702 |
which I think is a Perl bug. --- /
|
4703 |
|
4704 |
/A(*COMMIT)(B|D)/
|
4705 |
ACABX
|
4706 |
|
4707 |
/--- Check the use of names for failure ---/
|
4708 |
|
4709 |
/^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K
|
4710 |
** Failers
|
4711 |
AC
|
4712 |
CB
|
4713 |
|
4714 |
/--- Force no study, otherwise mark is not seen. The studied version is in
|
4715 |
test 2 because it isn't Perl-compatible. ---/
|
4716 |
|
4717 |
/(*MARK:A)(*SKIP:B)(C|X)/KSS
|
4718 |
C
|
4719 |
D
|
4720 |
|
4721 |
/^(A(*THEN:A)B|C(*THEN:B)D)/K
|
4722 |
** Failers
|
4723 |
CB
|
4724 |
|
4725 |
/^(?:A(*THEN:A)B|C(*THEN:B)D)/K
|
4726 |
CB
|
4727 |
|
4728 |
/^(?>A(*THEN:A)B|C(*THEN:B)D)/K
|
4729 |
CB
|
4730 |
|
4731 |
/--- This should succeed, as the skip causes bump to offset 1 (the mark). Note
|
4732 |
that we have to have something complicated such as (B|Z) at the end because,
|
4733 |
for Perl, a simple character somehow causes an unwanted optimization to mess
|
4734 |
with the handling of backtracking verbs. ---/
|
4735 |
|
4736 |
/A(*MARK:A)A+(*SKIP:A)(B|Z) | AC/xK
|
4737 |
AAAC
|
4738 |
|
4739 |
/--- Test skipping over a non-matching mark. ---/
|
4740 |
|
4741 |
/A(*MARK:A)A+(*MARK:B)(*SKIP:A)(B|Z) | AC/xK
|
4742 |
AAAC
|
4743 |
|
4744 |
/--- Check shorthand for MARK ---/
|
4745 |
|
4746 |
/A(*:A)A+(*SKIP:A)(B|Z) | AC/xK
|
4747 |
AAAC
|
4748 |
|
4749 |
/--- Don't loop! Force no study, otherwise mark is not seen. ---/
|
4750 |
|
4751 |
/(*:A)A+(*SKIP:A)(B|Z)/KSS
|
4752 |
AAAC
|
4753 |
|
4754 |
/--- This should succeed, as a non-existent skip name disables the skip ---/
|
4755 |
|
4756 |
/A(*MARK:A)A+(*SKIP:B)(B|Z) | AC/xK
|
4757 |
AAAC
|
4758 |
|
4759 |
/A(*MARK:A)A+(*SKIP:B)(B|Z) | AC(*:B)/xK
|
4760 |
AAAC
|
4761 |
|
4762 |
/--- COMMIT at the start of a pattern should act like an anchor. Again,
|
4763 |
however, we need the complication for Perl. ---/
|
4764 |
|
4765 |
/(*COMMIT)(A|P)(B|P)(C|P)/
|
4766 |
ABCDEFG
|
4767 |
** Failers
|
4768 |
DEFGABC
|
4769 |
|
4770 |
/--- COMMIT inside an atomic group can't stop backtracking over the group. ---/
|
4771 |
|
4772 |
/(\w+)(?>b(*COMMIT))\w{2}/
|
4773 |
abbb
|
4774 |
|
4775 |
/(\w+)b(*COMMIT)\w{2}/
|
4776 |
abbb
|
4777 |
|
4778 |
/--- Check opening parens in comment when seeking forward reference. ---/
|
4779 |
|
4780 |
/(?&t)(?#()(?(DEFINE)(?<t>a))/
|
4781 |
bac
|
4782 |
|
4783 |
/--- COMMIT should override THEN ---/
|
4784 |
|
4785 |
/(?>(*COMMIT)(?>yes|no)(*THEN)(*F))?/
|
4786 |
yes
|
4787 |
|
4788 |
/(?>(*COMMIT)(yes|no)(*THEN)(*F))?/
|
4789 |
yes
|
4790 |
|
4791 |
/b?(*SKIP)c/
|
4792 |
bc
|
4793 |
abc
|
4794 |
|
4795 |
/(*SKIP)bc/
|
4796 |
a
|
4797 |
|
4798 |
/(*SKIP)b/
|
4799 |
a
|
4800 |
|
4801 |
/(?P<abn>(?P=abn)xxx|)+/
|
4802 |
xxx
|
4803 |
|
4804 |
/(?i:([^b]))(?1)/
|
4805 |
aa
|
4806 |
aA
|
4807 |
** Failers
|
4808 |
ab
|
4809 |
aB
|
4810 |
Ba
|
4811 |
ba
|
4812 |
|
4813 |
/^(?&t)*+(?(DEFINE)(?<t>a))\w$/
|
4814 |
aaaaaaX
|
4815 |
** Failers
|
4816 |
aaaaaa
|
4817 |
|
4818 |
/^(?&t)*(?(DEFINE)(?<t>a))\w$/
|
4819 |
aaaaaaX
|
4820 |
aaaaaa
|
4821 |
|
4822 |
/^(a)*+(\w)/
|
4823 |
aaaaX
|
4824 |
YZ
|
4825 |
** Failers
|
4826 |
aaaa
|
4827 |
|
4828 |
/^(?:a)*+(\w)/
|
4829 |
aaaaX
|
4830 |
YZ
|
4831 |
** Failers
|
4832 |
aaaa
|
4833 |
|
4834 |
/^(a)++(\w)/
|
4835 |
aaaaX
|
4836 |
** Failers
|
4837 |
aaaa
|
4838 |
YZ
|
4839 |
|
4840 |
/^(?:a)++(\w)/
|
4841 |
aaaaX
|
4842 |
** Failers
|
4843 |
aaaa
|
4844 |
YZ
|
4845 |
|
4846 |
/^(a)?+(\w)/
|
4847 |
aaaaX
|
4848 |
YZ
|
4849 |
|
4850 |
/^(?:a)?+(\w)/
|
4851 |
aaaaX
|
4852 |
YZ
|
4853 |
|
4854 |
/^(a){2,}+(\w)/
|
4855 |
aaaaX
|
4856 |
** Failers
|
4857 |
aaa
|
4858 |
YZ
|
4859 |
|
4860 |
/^(?:a){2,}+(\w)/
|
4861 |
aaaaX
|
4862 |
** Failers
|
4863 |
aaa
|
4864 |
YZ
|
4865 |
|
4866 |
/(a|)*(?1)b/
|
4867 |
b
|
4868 |
ab
|
4869 |
aab
|
4870 |
|
4871 |
/(a)++(?1)b/
|
4872 |
** Failers
|
4873 |
ab
|
4874 |
aab
|
4875 |
|
4876 |
/(a)*+(?1)b/
|
4877 |
** Failers
|
4878 |
ab
|
4879 |
aab
|
4880 |
|
4881 |
/(?1)(?:(b)){0}/
|
4882 |
b
|
4883 |
|
4884 |
/(foo ( \( ((?:(?> [^()]+ )|(?2))*) \) ) )/x
|
4885 |
foo(bar(baz)+baz(bop))
|
4886 |
|
4887 |
/(A (A|B(*ACCEPT)|C) D)(E)/x
|
4888 |
AB
|
4889 |
|
4890 |
/\A.*?(a|bc)/
|
4891 |
ba
|
4892 |
|
4893 |
/\A.*?(?:a|bc)++/
|
4894 |
ba
|
4895 |
|
4896 |
/\A.*?(a|bc)++/
|
4897 |
ba
|
4898 |
|
4899 |
/\A.*?(?:a|bc|d)/
|
4900 |
ba
|
4901 |
|
4902 |
/(?:(b))++/
|
4903 |
beetle
|
4904 |
|
4905 |
/(?(?=(a(*ACCEPT)z))a)/
|
4906 |
a
|
4907 |
|
4908 |
/^(a)(?1)+ab/
|
4909 |
aaaab
|
4910 |
|
4911 |
/^(a)(?1)++ab/
|
4912 |
aaaab
|
4913 |
|
4914 |
/^(?=a(*:M))aZ/K
|
4915 |
aZbc
|
4916 |
|
4917 |
/^(?!(*:M)b)aZ/K
|
4918 |
aZbc
|
4919 |
|
4920 |
/(?(DEFINE)(a))?b(?1)/
|
4921 |
backgammon
|
4922 |
|
4923 |
/^\N+/
|
4924 |
abc\ndef
|
4925 |
|
4926 |
/^\N{1,}/
|
4927 |
abc\ndef
|
4928 |
|
4929 |
/(?(R)a+|(?R)b)/
|
4930 |
aaaabcde
|
4931 |
|
4932 |
/(?(R)a+|((?R))b)/
|
4933 |
aaaabcde
|
4934 |
|
4935 |
/((?(R)a+|(?1)b))/
|
4936 |
aaaabcde
|
4937 |
|
4938 |
/((?(R1)a+|(?1)b))/
|
4939 |
aaaabcde
|
4940 |
|
4941 |
/((?(R)a|(?1)))*/
|
4942 |
aaa
|
4943 |
|
4944 |
/((?(R)a|(?1)))+/
|
4945 |
aaa
|
4946 |
|
4947 |
/a(*:any
|
4948 |
name)/K
|
4949 |
abc
|
4950 |
|
4951 |
/(?>(?&t)c|(?&t))(?(DEFINE)(?<t>a|b(*PRUNE)c))/
|
4952 |
a
|
4953 |
ba
|
4954 |
bba
|
4955 |
|
4956 |
/--- Checking revised (*THEN) handling ---/
|
4957 |
|
4958 |
/--- Capture ---/
|
4959 |
|
4960 |
/^.*? (a(*THEN)b) c/x
|
4961 |
aabc
|
4962 |
|
4963 |
/^.*? (a(*THEN)b|(*F)) c/x
|
4964 |
aabc
|
4965 |
|
4966 |
/^.*? ( (a(*THEN)b) | (*F) ) c/x
|
4967 |
aabc
|
4968 |
|
4969 |
/^.*? ( (a(*THEN)b) ) c/x
|
4970 |
aabc
|
4971 |
|
4972 |
/--- Non-capture ---/
|
4973 |
|
4974 |
/^.*? (?:a(*THEN)b) c/x
|
4975 |
aabc
|
4976 |
|
4977 |
/^.*? (?:a(*THEN)b|(*F)) c/x
|
4978 |
aabc
|
4979 |
|
4980 |
/^.*? (?: (?:a(*THEN)b) | (*F) ) c/x
|
4981 |
aabc
|
4982 |
|
4983 |
/^.*? (?: (?:a(*THEN)b) ) c/x
|
4984 |
aabc
|
4985 |
|
4986 |
/--- Atomic ---/
|
4987 |
|
4988 |
/^.*? (?>a(*THEN)b) c/x
|
4989 |
aabc
|
4990 |
|
4991 |
/^.*? (?>a(*THEN)b|(*F)) c/x
|
4992 |
aabc
|
4993 |
|
4994 |
/^.*? (?> (?>a(*THEN)b) | (*F) ) c/x
|
4995 |
aabc
|
4996 |
|
4997 |
/^.*? (?> (?>a(*THEN)b) ) c/x
|
4998 |
aabc
|
4999 |
|
5000 |
/--- Possessive capture ---/
|
5001 |
|
5002 |
/^.*? (a(*THEN)b)++ c/x
|
5003 |
aabc
|
5004 |
|
5005 |
/^.*? (a(*THEN)b|(*F))++ c/x
|
5006 |
aabc
|
5007 |
|
5008 |
/^.*? ( (a(*THEN)b)++ | (*F) )++ c/x
|
5009 |
aabc
|
5010 |
|
5011 |
/^.*? ( (a(*THEN)b)++ )++ c/x
|
5012 |
aabc
|
5013 |
|
5014 |
/--- Possessive non-capture ---/
|
5015 |
|
5016 |
/^.*? (?:a(*THEN)b)++ c/x
|
5017 |
aabc
|
5018 |
|
5019 |
/^.*? (?:a(*THEN)b|(*F))++ c/x
|
5020 |
aabc
|
5021 |
|
5022 |
/^.*? (?: (?:a(*THEN)b)++ | (*F) )++ c/x
|
5023 |
aabc
|
5024 |
|
5025 |
/^.*? (?: (?:a(*THEN)b)++ )++ c/x
|
5026 |
aabc
|
5027 |
|
5028 |
/--- Condition assertion ---/
|
5029 |
|
5030 |
/^(?(?=a(*THEN)b)ab|ac)/
|
5031 |
ac
|
5032 |
|
5033 |
/--- Condition ---/
|
5034 |
|
5035 |
/^.*?(?(?=a)a|b(*THEN)c)/
|
5036 |
ba
|
5037 |
|
5038 |
/^.*?(?:(?(?=a)a|b(*THEN)c)|d)/
|
5039 |
ba
|
5040 |
|
5041 |
/^.*?(?(?=a)a(*THEN)b|c)/
|
5042 |
ac
|
5043 |
|
5044 |
/--- Assertion ---/
|
5045 |
|
5046 |
/^.*(?=a(*THEN)b)/
|
5047 |
aabc
|
5048 |
|
5049 |
/------------------------------/
|
5050 |
|
5051 |
/(?>a(*:m))/imsxSK
|
5052 |
a
|
5053 |
|
5054 |
/(?>(a)(*:m))/imsxSK
|
5055 |
a
|
5056 |
|
5057 |
/(?<=a(*ACCEPT)b)c/
|
5058 |
xacd
|
5059 |
|
5060 |
/(?<=(a(*ACCEPT)b))c/
|
5061 |
xacd
|
5062 |
|
5063 |
/(?<=(a(*COMMIT)b))c/
|
5064 |
xabcd
|
5065 |
** Failers
|
5066 |
xacd
|
5067 |
|
5068 |
/(?<!a(*FAIL)b)c/
|
5069 |
xcd
|
5070 |
acd
|
5071 |
|
5072 |
/(?<=a(*:N)b)c/K
|
5073 |
xabcd
|
5074 |
|
5075 |
/(?<=a(*PRUNE)b)c/
|
5076 |
xabcd
|
5077 |
|
5078 |
/(?<=a(*SKIP)b)c/
|
5079 |
xabcd
|
5080 |
|
5081 |
/(?<=a(*THEN)b)c/
|
5082 |
xabcd
|
5083 |
|
5084 |
/(a)(?2){2}(.)/
|
5085 |
abcd
|
5086 |
|
5087 |
/(*MARK:A)(*PRUNE:B)(C|X)/KS
|
5088 |
C
|
5089 |
D
|
5090 |
|
5091 |
/(*MARK:A)(*PRUNE:B)(C|X)/KSS
|
5092 |
C
|
5093 |
D
|
5094 |
|
5095 |
/(*MARK:A)(*THEN:B)(C|X)/KS
|
5096 |
C
|
5097 |
D
|
5098 |
|
5099 |
/(*MARK:A)(*THEN:B)(C|X)/KSY
|
5100 |
C
|
5101 |
D
|
5102 |
|
5103 |
/(*MARK:A)(*THEN:B)(C|X)/KSS
|
5104 |
C
|
5105 |
D
|
5106 |
|
5107 |
/--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/
|
5108 |
|
5109 |
/A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK
|
5110 |
AAAC
|
5111 |
|
5112 |
/--- Same --/
|
5113 |
|
5114 |
/A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK
|
5115 |
AAAC
|
5116 |
|
5117 |
/A(*:A)A+(*SKIP)(B|Z) | AC/xK
|
5118 |
AAAC
|
5119 |
|
5120 |
/--- This should fail, as a null name is the same as no name ---/
|
5121 |
|
5122 |
/A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK
|
5123 |
AAAC
|
5124 |
|
5125 |
/--- A check on what happens after hitting a mark and them bumping along to
|
5126 |
something that does not even start. Perl reports tags after the failures here,
|
5127 |
though it does not when the individual letters are made into something
|
5128 |
more complicated. ---/
|
5129 |
|
5130 |
/A(*:A)B|XX(*:B)Y/K
|
5131 |
AABC
|
5132 |
XXYZ
|
5133 |
** Failers
|
5134 |
XAQQ
|
5135 |
XAQQXZZ
|
5136 |
AXQQQ
|
5137 |
AXXQQQ
|
5138 |
|
5139 |
/^(A(*THEN:A)B|C(*THEN:B)D)/K
|
5140 |
AB
|
5141 |
CD
|
5142 |
** Failers
|
5143 |
AC
|
5144 |
CB
|
5145 |
|
5146 |
/^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K
|
5147 |
AB
|
5148 |
CD
|
5149 |
** Failers
|
5150 |
AC
|
5151 |
CB
|
5152 |
|
5153 |
/--- An empty name does not pass back an empty string. It is the same as if no
|
5154 |
name were given. ---/
|
5155 |
|
5156 |
/^(A(*PRUNE:)B|C(*PRUNE:B)D)/K
|
5157 |
AB
|
5158 |
CD
|
5159 |
|
5160 |
/--- PRUNE goes to next bumpalong; COMMIT does not. ---/
|
5161 |
|
5162 |
/A(*PRUNE:A)B/K
|
5163 |
ACAB
|
5164 |
|
5165 |
/--- Mark names can be duplicated ---/
|
5166 |
|
5167 |
/A(*:A)B|X(*:A)Y/K
|
5168 |
AABC
|
5169 |
XXYZ
|
5170 |
|
5171 |
/b(*:m)f|a(*:n)w/K
|
5172 |
aw
|
5173 |
** Failers
|
5174 |
abc
|
5175 |
|
5176 |
/b(*:m)f|aw/K
|
5177 |
abaw
|
5178 |
** Failers
|
5179 |
abc
|
5180 |
abax
|
5181 |
|
5182 |
/A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK
|
5183 |
AAAC
|
5184 |
|
5185 |
/a(*PRUNE:X)bc|qq/KY
|
5186 |
** Failers
|
5187 |
axy
|
5188 |
|
5189 |
/a(*THEN:X)bc|qq/KY
|
5190 |
** Failers
|
5191 |
axy
|
5192 |
|
5193 |
/(?=a(*MARK:A)b)..x/K
|
5194 |
abxy
|
5195 |
** Failers
|
5196 |
abpq
|
5197 |
|
5198 |
/(?=a(*MARK:A)b)..(*:Y)x/K
|
5199 |
abxy
|
5200 |
** Failers
|
5201 |
abpq
|
5202 |
|
5203 |
/(?=a(*PRUNE:A)b)..x/K
|
5204 |
abxy
|
5205 |
** Failers
|
5206 |
abpq
|
5207 |
|
5208 |
/(?=a(*PRUNE:A)b)..(*:Y)x/K
|
5209 |
abxy
|
5210 |
** Failers
|
5211 |
abpq
|
5212 |
|
5213 |
/(?=a(*THEN:A)b)..x/K
|
5214 |
abxy
|
5215 |
** Failers
|
5216 |
abpq
|
5217 |
|
5218 |
/(?=a(*THEN:A)b)..(*:Y)x/K
|
5219 |
abxy
|
5220 |
** Failers
|
5221 |
abpq
|
5222 |
|
5223 |
/(another)?(\1?)test/
|
5224 |
hello world test
|
5225 |
|
5226 |
/(another)?(\1+)test/
|
5227 |
hello world test
|
5228 |
|
5229 |
/(a(*COMMIT)b){0}a(?1)|aac/
|
5230 |
aac
|
5231 |
|
5232 |
/((?:a?)*)*c/
|
5233 |
aac
|
5234 |
|
5235 |
/((?>a?)*)*c/
|
5236 |
aac
|
5237 |
|
5238 |
/(?>.*?a)(?<=ba)/
|
5239 |
aba
|
5240 |
|
5241 |
/(?:.*?a)(?<=ba)/
|
5242 |
aba
|
5243 |
|
5244 |
/.*?a(*PRUNE)b/
|
5245 |
aab
|
5246 |
|
5247 |
/.*?a(*PRUNE)b/s
|
5248 |
aab
|
5249 |
|
5250 |
/^a(*PRUNE)b/s
|
5251 |
aab
|
5252 |
|
5253 |
/.*?a(*SKIP)b/
|
5254 |
aab
|
5255 |
|
5256 |
/(?>.*?a)b/s
|
5257 |
aab
|
5258 |
|
5259 |
/(?>.*?a)b/
|
5260 |
aab
|
5261 |
|
5262 |
/(?>^a)b/s
|
5263 |
aab
|
5264 |
|
5265 |
/(?>.*?)(?<=(abcd)|(wxyz))/
|
5266 |
alphabetabcd
|
5267 |
endingwxyz
|
5268 |
|
5269 |
/(?>.*)(?<=(abcd)|(wxyz))/
|
5270 |
alphabetabcd
|
5271 |
endingwxyz
|
5272 |
|
5273 |
"(?>.*)foo"
|
5274 |
abcdfooxyz
|
5275 |
|
5276 |
"(?>.*?)foo"
|
5277 |
abcdfooxyz
|
5278 |
|
5279 |
/(?:(a(*PRUNE)b)){0}(?:(?1)|ac)/
|
5280 |
ac
|
5281 |
|
5282 |
/(?:(a(*SKIP)b)){0}(?:(?1)|ac)/
|
5283 |
ac
|
5284 |
|
5285 |
/(?<=(*SKIP)ac)a/
|
5286 |
aa
|
5287 |
|
5288 |
/A(*MARK:A)A+(*SKIP:B)(B|Z) | AC/xK
|
5289 |
AAAC
|
5290 |
|
5291 |
/a(*SKIP:m)x|ac(*:n)(*SKIP:n)d|ac/K
|
5292 |
acacd
|
5293 |
|
5294 |
/A(*SKIP:m)x|A(*SKIP:n)x|AB/K
|
5295 |
AB
|
5296 |
|
5297 |
/((*SKIP:r)d){0}a(*SKIP:m)x|ac(*:n)|ac/K
|
5298 |
acacd
|
5299 |
|
5300 |
/-- Tests that try to figure out how Perl works. My hypothesis is that the
|
5301 |
first verb that is backtracked onto is the one that acts. This seems to be
|
5302 |
the case almost all the time, but there is one exception that is perhaps a
|
5303 |
bug. --/
|
5304 |
|
5305 |
/-- This matches "aaaac"; each PRUNE advances one character until the subject
|
5306 |
no longer starts with 5 'a's. --/
|
5307 |
|
5308 |
/aaaaa(*PRUNE)b|a+c/
|
5309 |
aaaaaac
|
5310 |
|
5311 |
/-- Putting SKIP in front of PRUNE makes no difference, as it is never
|
5312 |
backtracked onto, whether or not it has a label. --/
|
5313 |
|
5314 |
/aaaaa(*SKIP)(*PRUNE)b|a+c/
|
5315 |
aaaaaac
|
5316 |
|
5317 |
/aaaaa(*SKIP:N)(*PRUNE)b|a+c/
|
5318 |
aaaaaac
|
5319 |
|
5320 |
/aaaa(*:N)a(*SKIP:N)(*PRUNE)b|a+c/
|
5321 |
aaaaaac
|
5322 |
|
5323 |
/-- Putting THEN in front makes no difference. */
|
5324 |
|
5325 |
/aaaaa(*THEN)(*PRUNE)b|a+c/
|
5326 |
aaaaaac
|
5327 |
|
5328 |
/-- However, putting COMMIT in front of the prune changes it to "no match". I
|
5329 |
think this is inconsistent and possibly a bug. For the moment, running this
|
5330 |
test is moved out of the Perl-compatible file. --/
|
5331 |
|
5332 |
/aaaaa(*COMMIT)(*PRUNE)b|a+c/
|
5333 |
|
5334 |
|
5335 |
/---- OK, lets play the same game again using SKIP instead of PRUNE. ----/
|
5336 |
|
5337 |
/-- This matches "ac" because SKIP forces the next match to start on the
|
5338 |
sixth "a". --/
|
5339 |
|
5340 |
/aaaaa(*SKIP)b|a+c/
|
5341 |
aaaaaac
|
5342 |
|
5343 |
/-- Putting PRUNE in front makes no difference. --/
|
5344 |
|
5345 |
/aaaaa(*PRUNE)(*SKIP)b|a+c/
|
5346 |
aaaaaac
|
5347 |
|
5348 |
/-- Putting THEN in front makes no difference. --/
|
5349 |
|
5350 |
/aaaaa(*THEN)(*SKIP)b|a+c/
|
5351 |
aaaaaac
|
5352 |
|
5353 |
/-- In this case, neither does COMMIT. This still matches "ac". --/
|
5354 |
|
5355 |
/aaaaa(*COMMIT)(*SKIP)b|a+c/
|
5356 |
aaaaaac
|
5357 |
|
5358 |
/-- This gives "no match", as expected. --/
|
5359 |
|
5360 |
/aaaaa(*COMMIT)b|a+c/
|
5361 |
aaaaaac
|
5362 |
|
5363 |
|
5364 |
/------ Tests using THEN ------/
|
5365 |
|
5366 |
/-- This matches "aaaaaac", as expected. --/
|
5367 |
|
5368 |
/aaaaa(*THEN)b|a+c/
|
5369 |
aaaaaac
|
5370 |
|
5371 |
/-- Putting SKIP in front makes no difference. --/
|
5372 |
|
5373 |
/aaaaa(*SKIP)(*THEN)b|a+c/
|
5374 |
aaaaaac
|
5375 |
|
5376 |
/-- Putting PRUNE in front makes no difference. --/
|
5377 |
|
5378 |
/aaaaa(*PRUNE)(*THEN)b|a+c/
|
5379 |
aaaaaac
|
5380 |
|
5381 |
/-- Putting COMMIT in front makes no difference. --/
|
5382 |
|
5383 |
/aaaaa(*COMMIT)(*THEN)b|a+c/
|
5384 |
aaaaaac
|
5385 |
|
5386 |
/-- End of "priority" tests --/
|
5387 |
|
5388 |
/aaaaa(*:m)(*PRUNE:m)(*SKIP:m)m|a+/
|
5389 |
aaaaaa
|
5390 |
|
5391 |
/aaaaa(*:m)(*MARK:m)(*PRUNE)(*SKIP:m)m|a+/
|
5392 |
aaaaaa
|
5393 |
|
5394 |
/aaaaa(*:n)(*PRUNE:m)(*SKIP:m)m|a+/
|
5395 |
aaaaaa
|
5396 |
|
5397 |
/aaaaa(*:n)(*MARK:m)(*PRUNE)(*SKIP:m)m|a+/
|
5398 |
aaaaaa
|
5399 |
|
5400 |
/a(*MARK:A)aa(*PRUNE:A)a(*SKIP:A)b|a+c/
|
5401 |
aaaac
|
5402 |
|
5403 |
/a(*MARK:A)aa(*MARK:A)a(*SKIP:A)b|a+c/
|
5404 |
aaaac
|
5405 |
|
5406 |
/aaa(*PRUNE:A)a(*SKIP:A)b|a+c/
|
5407 |
aaaac
|
5408 |
|
5409 |
/aaa(*MARK:A)a(*SKIP:A)b|a+c/
|
5410 |
aaaac
|
5411 |
|
5412 |
/a(*:m)a(*COMMIT)(*SKIP:m)b|a+c/K
|
5413 |
aaaaaac
|
5414 |
|
5415 |
/.?(a|b(*THEN)c)/
|
5416 |
ba
|
5417 |
|
5418 |
/(a(*COMMIT)b)c|abd/
|
5419 |
abc
|
5420 |
abd
|
5421 |
|
5422 |
/(?=a(*COMMIT)b)abc|abd/
|
5423 |
abc
|
5424 |
abd
|
5425 |
|
5426 |
/(?>a(*COMMIT)b)c|abd/
|
5427 |
abc
|
5428 |
abd
|
5429 |
|
5430 |
/a(?=b(*COMMIT)c)[^d]|abd/
|
5431 |
abd
|
5432 |
abc
|
5433 |
|
5434 |
/a(?=bc).|abd/
|
5435 |
abd
|
5436 |
abc
|
5437 |
|
5438 |
/a(?>b(*COMMIT)c)d|abd/
|
5439 |
abceabd
|
5440 |
|
5441 |
/a(?>bc)d|abd/
|
5442 |
abceabd
|
5443 |
|
5444 |
/(?>a(*COMMIT)b)c|abd/
|
5445 |
abd
|
5446 |
|
5447 |
/(?>a(*COMMIT)c)d|abd/
|
5448 |
abd
|
5449 |
|
5450 |
/((?=a(*COMMIT)b)ab|ac){0}(?:(?1)|a(c))/
|
5451 |
ac
|
5452 |
|
5453 |
/-- These tests were formerly in test 2, but changes in PCRE and Perl have
|
5454 |
made them compatible. --/
|
5455 |
|
5456 |
/^(a)?(?(1)a|b)+$/
|
5457 |
*** Failers
|
5458 |
a
|
5459 |
|
5460 |
/(?=a\Kb)ab/
|
5461 |
ab
|
5462 |
|
5463 |
/(?!a\Kb)ac/
|
5464 |
ac
|
5465 |
|
5466 |
/^abc(?<=b\Kc)d/
|
5467 |
abcd
|
5468 |
|
5469 |
/^abc(?<!b\Kq)d/
|
5470 |
abcd
|
5471 |
|
5472 |
|
5473 |
/A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
|
5474 |
AAAC
|
5475 |
|
5476 |
/^((abc|abcx)(*THEN)y|abcd)/
|
5477 |
abcd
|
5478 |
*** Failers
|
5479 |
abcxy
|
5480 |
|
5481 |
/^((yes|no)(*THEN)(*F))?/
|
5482 |
yes
|
5483 |
|
5484 |
/(A (.*) C? (*THEN) | A D) (*FAIL)/x
|
5485 |
AbcdCBefgBhiBqz
|
5486 |
|
5487 |
/(A (.*) C? (*THEN) | A D) z/x
|
5488 |
AbcdCBefgBhiBqz
|
5489 |
|
5490 |
/(A (.*) C? (*THEN) | A D) \s* (*FAIL)/x
|
5491 |
AbcdCBefgBhiBqz
|
5492 |
|
5493 |
/(A (.*) C? (*THEN) | A D) \s* z/x
|
5494 |
AbcdCBefgBhiBqz
|
5495 |
|
5496 |
/(A (.*) (?:C|) (*THEN) | A D) (*FAIL)/x
|
5497 |
AbcdCBefgBhiBqz
|
5498 |
|
5499 |
/(A (.*) (?:C|) (*THEN) | A D) z/x
|
5500 |
AbcdCBefgBhiBqz
|
5501 |
|
5502 |
/(A (.*) C{0,6} (*THEN) | A D) (*FAIL)/x
|
5503 |
AbcdCBefgBhiBqz
|
5504 |
|
5505 |
/(A (.*) C{0,6} (*THEN) | A D) z/x
|
5506 |
AbcdCBefgBhiBqz
|
5507 |
|
5508 |
/(A (.*) (CE){0,6} (*THEN) | A D) (*FAIL)/x
|
5509 |
AbcdCEBefgBhiBqz
|
5510 |
|
5511 |
/(A (.*) (CE){0,6} (*THEN) | A D) z/x
|
5512 |
AbcdCEBefgBhiBqz
|
5513 |
|
5514 |
/(A (.*) (CE*){0,6} (*THEN) | A D) (*FAIL)/x
|
5515 |
AbcdCBefgBhiBqz
|
5516 |
|
5517 |
/(A (.*) (CE*){0,6} (*THEN) | A D) z/x
|
5518 |
AbcdCBefgBhiBqz
|
5519 |
|
5520 |
/(?=a(*COMMIT)b|ac)ac|ac/
|
5521 |
ac
|
5522 |
|
5523 |
/(?=a(*COMMIT)b|(ac)) ac | (a)c/x
|
5524 |
ac
|
5525 |
|
5526 |
/--------/
|
5527 |
|
5528 |
/(?(?!b(*THEN)a)bn|bnn)/
|
5529 |
bnn
|
5530 |
|
5531 |
/(?!b(*SKIP)a)bn|bnn/
|
5532 |
bnn
|
5533 |
|
5534 |
/(?(?!b(*SKIP)a)bn|bnn)/
|
5535 |
bnn
|
5536 |
|
5537 |
/(?!b(*PRUNE)a)bn|bnn/
|
5538 |
bnn
|
5539 |
|
5540 |
/(?(?!b(*PRUNE)a)bn|bnn)/
|
5541 |
bnn
|
5542 |
|
5543 |
/(?!b(*COMMIT)a)bn|bnn/
|
5544 |
bnn
|
5545 |
|
5546 |
/(?(?!b(*COMMIT)a)bn|bnn)/
|
5547 |
bnn
|
5548 |
|
5549 |
/(?=b(*SKIP)a)bn|bnn/
|
5550 |
bnn
|
5551 |
|
5552 |
/(?=b(*THEN)a)bn|bnn/
|
5553 |
bnn
|
5554 |
|
5555 |
/^(?!a(*SKIP)b)/
|
5556 |
ac
|
5557 |
|
5558 |
/^(?!a(*SKIP)b)../
|
5559 |
acd
|
5560 |
|
5561 |
/(?!a(*SKIP)b)../
|
5562 |
acd
|
5563 |
|
5564 |
/^(?(?!a(*SKIP)b))/
|
5565 |
ac
|
5566 |
|
5567 |
/^(?!a(*PRUNE)b)../
|
5568 |
acd
|
5569 |
|
5570 |
/(?!a(*PRUNE)b)../
|
5571 |
acd
|
5572 |
|
5573 |
/(?!a(*COMMIT)b)ac|cd/
|
5574 |
ac
|
5575 |
|
5576 |
/\A.*?(?:a|bc)/
|
5577 |
ba
|
5578 |
|
5579 |
/^(A(*THEN)B|C(*THEN)D)/
|
5580 |
CD
|
5581 |
|
5582 |
/(*:m(m)(?&y)(?(DEFINE)(?<y>b))/K
|
5583 |
abc
|
5584 |
|
5585 |
/(*PRUNE:m(m)(?&y)(?(DEFINE)(?<y>b))/K
|
5586 |
abc
|
5587 |
|
5588 |
/(*SKIP:m(m)(?&y)(?(DEFINE)(?<y>b))/K
|
5589 |
abc
|
5590 |
|
5591 |
/(*THEN:m(m)(?&y)(?(DEFINE)(?<y>b))/K
|
5592 |
abc
|
5593 |
|
5594 |
/^\d*\w{4}/
|
5595 |
1234
|
5596 |
123
|
5597 |
|
5598 |
/^[^b]*\w{4}/
|
5599 |
aaaa
|
5600 |
aaa
|
5601 |
|
5602 |
/^[^b]*\w{4}/i
|
5603 |
aaaa
|
5604 |
aaa
|
5605 |
|
5606 |
/^a*\w{4}/
|
5607 |
aaaa
|
5608 |
aaa
|
5609 |
|
5610 |
/^a*\w{4}/i
|
5611 |
aaaa
|
5612 |
aaa
|
5613 |
|
5614 |
/(?(?=ab)ab)/+
|
5615 |
ca
|
5616 |
cd
|
5617 |
|
5618 |
/(?:(?<n>foo)|(?<n>bar))\k<n>/J
|
5619 |
foofoo
|
5620 |
barbar
|
5621 |
|
5622 |
/(?<n>A)(?:(?<n>foo)|(?<n>bar))\k<n>/J
|
5623 |
AfooA
|
5624 |
AbarA
|
5625 |
** Failers
|
5626 |
Afoofoo
|
5627 |
Abarbar
|
5628 |
|
5629 |
/^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
|
5630 |
1 IN SOA non-sp1 non-sp2(
|
5631 |
|
5632 |
/^ (?:(?<A>A)|(?'B'B)(?<A>A)) (?('A')x) (?(<B>)y)$/xJ
|
5633 |
Ax
|
5634 |
BAxy
|
5635 |
|
5636 |
/^A\xZ/
|
5637 |
A\0Z
|
5638 |
|
5639 |
/^A\o{123}B/
|
5640 |
A\123B
|
5641 |
|
5642 |
/ ^ a + + b $ /x
|
5643 |
aaaab
|
5644 |
|
5645 |
/ ^ a + #comment
|
5646 |
+ b $ /x
|
5647 |
aaaab
|
5648 |
|
5649 |
/ ^ a + #comment
|
5650 |
#comment
|
5651 |
+ b $ /x
|
5652 |
aaaab
|
5653 |
|
5654 |
/ ^ (?> a + ) b $ /x
|
5655 |
aaaab
|
5656 |
|
5657 |
/ ^ ( a + ) + + \w $ /x
|
5658 |
aaaab
|
5659 |
|
5660 |
/(?:a\Kb)*+/+
|
5661 |
ababc
|
5662 |
|
5663 |
/(?>a\Kb)*/+
|
5664 |
ababc
|
5665 |
|
5666 |
/(?:a\Kb)*/+
|
5667 |
ababc
|
5668 |
|
5669 |
/(a\Kb)*+/+
|
5670 |
ababc
|
5671 |
|
5672 |
/(a\Kb)*/+
|
5673 |
ababc
|
5674 |
|
5675 |
/(?:x|(?:(xx|yy)+|x|x|x|x|x)|a|a|a)bc/
|
5676 |
acb
|
5677 |
|
5678 |
'\A(?:[^\"]++|\"(?:[^\"]*+|\"\")*+\")++'
|
5679 |
NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
|
5680 |
|
5681 |
'\A(?:[^\"]++|\"(?:[^\"]++|\"\")*+\")++'
|
5682 |
NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
|
5683 |
|
5684 |
'\A(?:[^\"]++|\"(?:[^\"]++|\"\")++\")++'
|
5685 |
NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
|
5686 |
|
5687 |
'\A([^\"1]++|[\"2]([^\"3]*+|[\"4][\"5])*+[\"6])++'
|
5688 |
NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
|
5689 |
|
5690 |
/^\w+(?>\s*)(?<=\w)/
|
5691 |
test test
|
5692 |
|
5693 |
/(?P<same>a)(?P<same>b)/gJ
|
5694 |
abbaba
|
5695 |
|
5696 |
/(?P<same>a)(?P<same>b)(?P=same)/gJ
|
5697 |
abbaba
|
5698 |
|
5699 |
/(?P=same)?(?P<same>a)(?P<same>b)/gJ
|
5700 |
abbaba
|
5701 |
|
5702 |
/(?:(?P=same)?(?:(?P<same>a)|(?P<same>b))(?P=same))+/gJ
|
5703 |
bbbaaabaabb
|
5704 |
|
5705 |
/(?:(?P=same)?(?:(?P=same)(?P<same>a)(?P=same)|(?P=same)?(?P<same>b)(?P=same)){2}(?P=same)(?P<same>c)(?P=same)){2}(?P<same>z)?/gJ
|
5706 |
bbbaaaccccaaabbbcc
|
5707 |
|
5708 |
/(?P<Name>a)?(?P<Name2>b)?(?(<Name>)c|d)*l/
|
5709 |
acl
|
5710 |
bdl
|
5711 |
adl
|
5712 |
bcl
|
5713 |
|
5714 |
/\sabc/
|
5715 |
\x{0b}abc
|
5716 |
|
5717 |
/[\Qa]\E]+/
|
5718 |
aa]]
|
5719 |
|
5720 |
/[\Q]a\E]+/
|
5721 |
aa]]
|
5722 |
|
5723 |
/(?:((abcd))|(((?:(?:(?:(?:abc|(?:abcdef))))b)abcdefghi)abc)|((*ACCEPT)))/
|
5724 |
1234abcd
|
5725 |
|
5726 |
/(\2)(\1)/
|
5727 |
|
5728 |
"Z*(|d*){216}"
|
5729 |
|
5730 |
"(?1)(?#?'){8}(a)"
|
5731 |
baaaaaaaaac
|
5732 |
|
5733 |
"(?|(\k'Pm')|(?'Pm'))"
|
5734 |
abcd
|
5735 |
|
5736 |
/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[,;:])(?=.{8,16})(?!.*[\s])/
|
5737 |
\ Fred:099
|
5738 |
|
5739 |
/(?=.*X)X$/
|
5740 |
\ X
|
5741 |
|
5742 |
/X+(?#comment)?/
|
5743 |
>XXX<
|
5744 |
|
5745 |
/ (?<word> \w+ )* \. /xi
|
5746 |
pokus.
|
5747 |
|
5748 |
/(?(DEFINE) (?<word> \w+ ) ) (?&word)* \./xi
|
5749 |
pokus.
|
5750 |
|
5751 |
/(?(DEFINE) (?<word> \w+ ) ) ( (?&word)* ) \./xi
|
5752 |
pokus.
|
5753 |
|
5754 |
/(?&word)* (?(DEFINE) (?<word> \w+ ) ) \./xi
|
5755 |
pokus.
|
5756 |
|
5757 |
/(?&word)* \. (?<word> \w+ )/xi
|
5758 |
pokus.hokus
|
5759 |
|
5760 |
/-- End of testinput1 --/
|