blob: 19801efd2252519c53b41b3b91951951212c3284 [file] [log] [blame]
Tristan Matthews04616462013-11-14 16:09:34 -05001/-- This set of tests is not Perl-compatible. It checks on special features
2 of PCRE's API, error diagnostics, and the compiled code of some patterns.
3 It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4 Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5 either because PCRE can't be compatible, or there is a possible Perl
6 bug.
7
8 NOTE: This is a non-UTF-8 set of tests. When UTF-8 is needed, use test
9 5, and if Unicode Property Support is needed, use test 13. --/
10
11/-- Originally, the Perl >= 5.10 things were in here too, but now I have
12 separated many (most?) of them out into test 11. However, there may still
13 be some that were overlooked. --/
14
15/(a)b|/I
16
17/abc/I
18 abc
19 defabc
20 \Aabc
21 *** Failers
22 \Adefabc
23 ABC
24
25/^abc/I
26 abc
27 \Aabc
28 *** Failers
29 defabc
30 \Adefabc
31
32/a+bc/I
33
34/a*bc/I
35
36/a{3}bc/I
37
38/(abc|a+z)/I
39
40/^abc$/I
41 abc
42 *** Failers
43 def\nabc
44
45/ab\idef/X
46
47/(?X)ab\idef/X
48
49/x{5,4}/
50
51/z{65536}/
52
53/[abcd/
54
55/(?X)[\B]/
56
57/(?X)[\R]/
58
59/(?X)[\X]/
60
61/[\B]/BZ
62
63/[\R]/BZ
64
65/[\X]/BZ
66
67/[z-a]/
68
69/^*/
70
71/(abc/
72
73/(?# abc/
74
75/(?z)abc/
76
77/.*b/I
78
79/.*?b/I
80
81/cat|dog|elephant/I
82 this sentence eventually mentions a cat
83 this sentences rambles on and on for a while and then reaches elephant
84
85/cat|dog|elephant/IS
86 this sentence eventually mentions a cat
87 this sentences rambles on and on for a while and then reaches elephant
88
89/cat|dog|elephant/IiS
90 this sentence eventually mentions a CAT cat
91 this sentences rambles on and on for a while to elephant ElePhant
92
93/a|[bcd]/IS
94
95/(a|[^\dZ])/IS
96
97/(a|b)*[\s]/IS
98
99/(ab\2)/
100
101/{4,5}abc/
102
103/(a)(b)(c)\2/I
104 abcb
105 \O0abcb
106 \O3abcb
107 \O6abcb
108 \O9abcb
109 \O12abcb
110
111/(a)bc|(a)(b)\2/I
112 abc
113 \O0abc
114 \O3abc
115 \O6abc
116 aba
117 \O0aba
118 \O3aba
119 \O6aba
120 \O9aba
121 \O12aba
122
123/abc$/IE
124 abc
125 *** Failers
126 abc\n
127 abc\ndef
128
129/(a)(b)(c)(d)(e)\6/
130
131/the quick brown fox/I
132 the quick brown fox
133 this is a line with the quick brown fox
134
135/the quick brown fox/IA
136 the quick brown fox
137 *** Failers
138 this is a line with the quick brown fox
139
140/ab(?z)cd/
141
142/^abc|def/I
143 abcdef
144 abcdef\B
145
146/.*((abc)$|(def))/I
147 defabc
148 \Zdefabc
149
150/abc/P
151 abc
152 *** Failers
153
154/^abc|def/P
155 abcdef
156 abcdef\B
157
158/.*((abc)$|(def))/P
159 defabc
160 \Zdefabc
161
162/the quick brown fox/P
163 the quick brown fox
164 *** Failers
165 The Quick Brown Fox
166
167/the quick brown fox/Pi
168 the quick brown fox
169 The Quick Brown Fox
170
171/abc.def/P
172 *** Failers
173 abc\ndef
174
175/abc$/P
176 abc
177 abc\n
178
179/(abc)\2/P
180
181/(abc\1)/P
182 abc
183
184/)/
185
186/a[]b/
187
188/[^aeiou ]{3,}/I
189 co-processors, and for
190
191/<.*>/I
192 abc<def>ghi<klm>nop
193
194/<.*?>/I
195 abc<def>ghi<klm>nop
196
197/<.*>/IU
198 abc<def>ghi<klm>nop
199
200/(?U)<.*>/I
201 abc<def>ghi<klm>nop
202
203/<.*?>/IU
204 abc<def>ghi<klm>nop
205
206/={3,}/IU
207 abc========def
208
209/(?U)={3,}?/I
210 abc========def
211
212/(?<!bar|cattle)foo/I
213 foo
214 catfoo
215 *** Failers
216 the barfoo
217 and cattlefoo
218
219/(?<=a+)b/
220
221/(?<=aaa|b{0,3})b/
222
223/(?<!(foo)a\1)bar/
224
225/(?i)abc/I
226
227/(a|(?m)a)/I
228
229/(?i)^1234/I
230
231/(^b|(?i)^d)/I
232
233/(?s).*/I
234
235/[abcd]/IS
236
237/(?i)[abcd]/IS
238
239/(?m)[xy]|(b|c)/IS
240
241/(^a|^b)/Im
242
243/(?i)(^a|^b)/Im
244
245/(a)(?(1)a|b|c)/
246
247/(?(?=a)a|b|c)/
248
249/(?(1a)/
250
251/(?(1a))/
252
253/(?(?i))/
254
255/(?(abc))/
256
257/(?(?<ab))/
258
259/((?s)blah)\s+\1/I
260
261/((?i)blah)\s+\1/I
262
263/((?i)b)/IDZS
264
265/(a*b|(?i:c*(?-i)d))/IS
266
267/a$/I
268 a
269 a\n
270 *** Failers
271 \Za
272 \Za\n
273
274/a$/Im
275 a
276 a\n
277 \Za\n
278 *** Failers
279 \Za
280
281/\Aabc/Im
282
283/^abc/Im
284
285/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
286 aaaaabbbbbcccccdef
287
288/(?<=foo)[ab]/IS
289
290/(?<!foo)(alpha|omega)/IS
291
292/(?!alphabet)[ab]/IS
293
294/(?<=foo\n)^bar/Im
295 foo\nbarbar
296 ***Failers
297 rhubarb
298 barbell
299 abc\nbarton
300
301/^(?<=foo\n)bar/Im
302 foo\nbarbar
303 ***Failers
304 rhubarb
305 barbell
306 abc\nbarton
307
308/(?>^abc)/Im
309 abc
310 def\nabc
311 *** Failers
312 defabc
313
314/(?<=ab(c+)d)ef/
315
316/(?<=ab(?<=c+)d)ef/
317
318/(?<=ab(c|de)f)g/
319
320/The next three are in testinput2 because they have variable length branches/
321
322/(?<=bullock|donkey)-cart/I
323 the bullock-cart
324 a donkey-cart race
325 *** Failers
326 cart
327 horse-and-cart
328
329/(?<=ab(?i)x|y|z)/I
330
331/(?>.*)(?<=(abcd)|(xyz))/I
332 alphabetabcd
333 endingxyz
334
335/(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
336 abxyZZ
337 abXyZZ
338 ZZZ
339 zZZ
340 bZZ
341 BZZ
342 *** Failers
343 ZZ
344 abXYZZ
345 zzz
346 bzz
347
348/(?<!(foo)a)bar/I
349 bar
350 foobbar
351 *** Failers
352 fooabar
353
354/This one is here because Perl 5.005_02 doesn't fail it/I
355
356/^(a)?(?(1)a|b)+$/I
357 *** Failers
358 a
359
360/This one is here because Perl behaves differently; see also the following/I
361
362/^(a\1?){4}$/I
363 aaaa
364 aaaaaa
365
366/Perl does not fail these two for the final subjects. Neither did PCRE until/
367/release 8.01. The problem is in backtracking into a subpattern that contains/
368/a recursive reference to itself. PCRE has now made these into atomic patterns./
369
370/^(xa|=?\1a){2}$/
371 xa=xaa
372 ** Failers
373 xa=xaaa
374
375/^(xa|=?\1a)+$/
376 xa=xaa
377 ** Failers
378 xa=xaaa
379
380/These are syntax tests from Perl 5.005/I
381
382/a[b-a]/
383
384/a[]b/
385
386/a[/
387
388/*a/
389
390/(*)b/
391
392/abc)/
393
394/(abc/
395
396/a**/
397
398/)(/
399
400/\1/
401
402/\2/
403
404/(a)|\2/
405
406/a[b-a]/Ii
407
408/a[]b/Ii
409
410/a[/Ii
411
412/*a/Ii
413
414/(*)b/Ii
415
416/abc)/Ii
417
418/(abc/Ii
419
420/a**/Ii
421
422/)(/Ii
423
424/:(?:/
425
426/(?<%)b/
427
428/a(?{)b/
429
430/a(?{{})b/
431
432/a(?{}})b/
433
434/a(?{"{"})b/
435
436/a(?{"{"}})b/
437
438/(?(1?)a|b)/
439
440/[a[:xyz:/
441
442/(?<=x+)y/
443
444/a{37,17}/
445
446/abc/\
447
448/abc/\P
449
450/abc/\i
451
452/(a)bc(d)/I
453 abcd
454 abcd\C2
455 abcd\C5
456
457/(.{20})/I
458 abcdefghijklmnopqrstuvwxyz
459 abcdefghijklmnopqrstuvwxyz\C1
460 abcdefghijklmnopqrstuvwxyz\G1
461
462/(.{15})/I
463 abcdefghijklmnopqrstuvwxyz
464 abcdefghijklmnopqrstuvwxyz\C1\G1
465
466/(.{16})/I
467 abcdefghijklmnopqrstuvwxyz
468 abcdefghijklmnopqrstuvwxyz\C1\G1\L
469
470/^(a|(bc))de(f)/I
471 adef\G1\G2\G3\G4\L
472 bcdef\G1\G2\G3\G4\L
473 adefghijk\C0
474
475/^abc\00def/I
476 abc\00def\L\C0
477
478/word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
479)((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
480)?)?)?)?)?)?)?)?)?otherword/I
481
482/.*X/IDZ
483
484/.*X/IDZs
485
486/(.*X|^B)/IDZ
487
488/(.*X|^B)/IDZs
489
490/(?s)(.*X|^B)/IDZ
491
492/(?s:.*X|^B)/IDZ
493
494/\Biss\B/I+
495 Mississippi
496
497/\Biss\B/I+P
498 Mississippi
499
500/iss/IG+
501 Mississippi
502
503/\Biss\B/IG+
504 Mississippi
505
506/\Biss\B/Ig+
507 Mississippi
508 *** Failers
509 Mississippi\A
510
511/(?<=[Ms])iss/Ig+
512 Mississippi
513
514/(?<=[Ms])iss/IG+
515 Mississippi
516
517/^iss/Ig+
518 ississippi
519
520/.*iss/Ig+
521 abciss\nxyzisspqr
522
523/.i./I+g
524 Mississippi
525 Mississippi\A
526 Missouri river
527 Missouri river\A
528
529/^.is/I+g
530 Mississippi
531
532/^ab\n/Ig+
533 ab\nab\ncd
534
535/^ab\n/Img+
536 ab\nab\ncd
537
538/abc/I
539
540/abc|bac/I
541
542/(abc|bac)/I
543
544/(abc|(c|dc))/I
545
546/(abc|(d|de)c)/I
547
548/a*/I
549
550/a+/I
551
552/(baa|a+)/I
553
554/a{0,3}/I
555
556/baa{3,}/I
557
558/"([^\\"]+|\\.)*"/I
559
560/(abc|ab[cd])/I
561
562/(a|.)/I
563
564/a|ba|\w/I
565
566/abc(?=pqr)/I
567
568/...(?<=abc)/I
569
570/abc(?!pqr)/I
571
572/ab./I
573
574/ab[xyz]/I
575
576/abc*/I
577
578/ab.c*/I
579
580/a.c*/I
581
582/.c*/I
583
584/ac*/I
585
586/(a.c*|b.c*)/I
587
588/a.c*|aba/I
589
590/.+a/I
591
592/(?=abcda)a.*/I
593
594/(?=a)a.*/I
595
596/a(b)*/I
597
598/a\d*/I
599
600/ab\d*/I
601
602/a(\d)*/I
603
604/abcde{0,0}/I
605
606/ab\d+/I
607
608/a(?(1)b)(.)/I
609
610/a(?(1)bag|big)(.)/I
611
612/a(?(1)bag|big)*(.)/I
613
614/a(?(1)bag|big)+(.)/I
615
616/a(?(1)b..|b..)(.)/I
617
618/ab\d{0}e/I
619
620/a?b?/I
621 a
622 b
623 ab
624 \
625 *** Failers
626 \N
627
628/|-/I
629 abcd
630 -abc
631 \Nab-c
632 *** Failers
633 \Nabc
634
635/a*(b+)(z)(z)/P
636 aaaabbbbzzzz
637 aaaabbbbzzzz\O0
638 aaaabbbbzzzz\O1
639 aaaabbbbzzzz\O2
640 aaaabbbbzzzz\O3
641 aaaabbbbzzzz\O4
642 aaaabbbbzzzz\O5
643
644/^.?abcd/IS
645
646/\( # ( at start
647 (?: # Non-capturing bracket
648 (?>[^()]+) # Either a sequence of non-brackets (no backtracking)
649 | # Or
650 (?R) # Recurse - i.e. nested bracketed string
651 )* # Zero or more contents
652 \) # Closing )
653 /Ix
654 (abcd)
655 (abcd)xyz
656 xyz(abcd)
657 (ab(xy)cd)pqr
658 (ab(xycd)pqr
659 () abc ()
660 12(abcde(fsh)xyz(foo(bar))lmno)89
661 *** Failers
662 abcd
663 abcd)
664 (abcd
665
666/\( ( (?>[^()]+) | (?R) )* \) /Ixg
667 (ab(xy)cd)pqr
668 1(abcd)(x(y)z)pqr
669
670/\( (?: (?>[^()]+) | (?R) ) \) /Ix
671 (abcd)
672 (ab(xy)cd)
673 (a(b(c)d)e)
674 ((ab))
675 *** Failers
676 ()
677
678/\( (?: (?>[^()]+) | (?R) )? \) /Ix
679 ()
680 12(abcde(fsh)xyz(foo(bar))lmno)89
681
682/\( ( (?>[^()]+) | (?R) )* \) /Ix
683 (ab(xy)cd)
684
685/\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
686 (ab(xy)cd)
687
688/\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
689 (ab(xy)cd)
690 (123ab(xy)cd)
691
692/\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
693 (ab(xy)cd)
694 (123ab(xy)cd)
695
696/\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
697 (ab(xy)cd)
698
699/\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
700 (abcd(xyz<p>qrs)123)
701
702/\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
703 (ab(cd)ef)
704 (ab(cd(ef)gh)ij)
705
706/^[[:alnum:]]/DZ
707
708/^[[:^alnum:]]/DZ
709
710/^[[:alpha:]]/DZ
711
712/^[[:^alpha:]]/DZ
713
714/[_[:alpha:]]/IS
715
716/^[[:ascii:]]/DZ
717
718/^[[:^ascii:]]/DZ
719
720/^[[:blank:]]/DZ
721
722/^[[:^blank:]]/DZ
723
724/[\n\x0b\x0c\x0d[:blank:]]/IS
725
726/^[[:cntrl:]]/DZ
727
728/^[[:digit:]]/DZ
729
730/^[[:graph:]]/DZ
731
732/^[[:lower:]]/DZ
733
734/^[[:print:]]/DZ
735
736/^[[:punct:]]/DZ
737
738/^[[:space:]]/DZ
739
740/^[[:upper:]]/DZ
741
742/^[[:xdigit:]]/DZ
743
744/^[[:word:]]/DZ
745
746/^[[:^cntrl:]]/DZ
747
748/^[12[:^digit:]]/DZ
749
750/^[[:^blank:]]/DZ
751
752/[01[:alpha:]%]/DZ
753
754/[[.ch.]]/I
755
756/[[=ch=]]/I
757
758/[[:rhubarb:]]/I
759
760/[[:upper:]]/Ii
761 A
762 a
763
764/[[:lower:]]/Ii
765 A
766 a
767
768/((?-i)[[:lower:]])[[:lower:]]/Ii
769 ab
770 aB
771 *** Failers
772 Ab
773 AB
774
775/[\200-\110]/I
776
777/^(?(0)f|b)oo/I
778
779/This one's here because of the large output vector needed/I
780
781/(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I
782 \O900 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC
783
784/This one's here because Perl does this differently and PCRE can't at present/I
785
786/(main(O)?)+/I
787 mainmain
788 mainOmain
789
790/These are all cases where Perl does it differently (nested captures)/I
791
792/^(a(b)?)+$/I
793 aba
794
795/^(aa(bb)?)+$/I
796 aabbaa
797
798/^(aa|aa(bb))+$/I
799 aabbaa
800
801/^(aa(bb)??)+$/I
802 aabbaa
803
804/^(?:aa(bb)?)+$/I
805 aabbaa
806
807/^(aa(b(b))?)+$/I
808 aabbaa
809
810/^(?:aa(b(b))?)+$/I
811 aabbaa
812
813/^(?:aa(b(?:b))?)+$/I
814 aabbaa
815
816/^(?:aa(bb(?:b))?)+$/I
817 aabbbaa
818
819/^(?:aa(b(?:bb))?)+$/I
820 aabbbaa
821
822/^(?:aa(?:b(b))?)+$/I
823 aabbaa
824
825/^(?:aa(?:b(bb))?)+$/I
826 aabbbaa
827
828/^(aa(b(bb))?)+$/I
829 aabbbaa
830
831/^(aa(bb(bb))?)+$/I
832 aabbbbaa
833
834/--------------------------------------------------------------------/I
835
836/#/IxDZ
837
838/a#/IxDZ
839
840/[\s]/DZ
841
842/[\S]/DZ
843
844/a(?i)b/DZ
845 ab
846 aB
847 *** Failers
848 AB
849
850/(a(?i)b)/DZ
851 ab
852 aB
853 *** Failers
854 AB
855
856/ (?i)abc/IxDZ
857
858/#this is a comment
859 (?i)abc/IxDZ
860
861/123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
862
863/\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
864
865/\Q\E/DZ
866 \
867
868/\Q\Ex/DZ
869
870/ \Q\E/DZ
871
872/a\Q\E/DZ
873 abc
874 bca
875 bac
876
877/a\Q\Eb/DZ
878 abc
879
880/\Q\Eabc/DZ
881
882/x*+\w/DZ
883 *** Failers
884 xxxxx
885
886/x?+/DZ
887
888/x++/DZ
889
890/x{1,3}+/DZ
891
892/(x)*+/DZ
893
894/^(\w++|\s++)*$/I
895 now is the time for all good men to come to the aid of the party
896 *** Failers
897 this is not a line with only words and spaces!
898
899/(\d++)(\w)/I
900 12345a
901 *** Failers
902 12345+
903
904/a++b/I
905 aaab
906
907/(a++b)/I
908 aaab
909
910/(a++)b/I
911 aaab
912
913/([^()]++|\([^()]*\))+/I
914 ((abc(ade)ufh()()x
915
916/\(([^()]++|\([^()]+\))+\)/I
917 (abc)
918 (abc(def)xyz)
919 *** Failers
920 ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
921
922/(abc){1,3}+/DZ
923
924/a+?+/I
925
926/a{2,3}?+b/I
927
928/(?U)a+?+/I
929
930/a{2,3}?+b/IU
931
932/x(?U)a++b/DZ
933 xaaaab
934
935/(?U)xa++b/DZ
936 xaaaab
937
938/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
939
940/^x(?U)a+b/DZ
941
942/^x(?U)(a+)b/DZ
943
944/[.x.]/I
945
946/[=x=]/I
947
948/[:x:]/I
949
950/\l/I
951
952/\L/I
953
954/\N{name}/I
955
956/\u/I
957
958/\U/I
959
960/[/I
961
962/[a-/I
963
964/[[:space:]/I
965
966/[\s]/IDZ
967
968/[[:space:]]/IDZ
969
970/[[:space:]abcde]/IDZ
971
972/< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/Ix
973 <>
974 <abcd>
975 <abc <123> hij>
976 <abc <def> hij>
977 <abc<>def>
978 <abc<>
979 *** Failers
980 <abc
981
982|8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
983
984|\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
985
986/(.*)\d+\1/I
987
988/(.*)\d+/I
989
990/(.*)\d+\1/Is
991
992/(.*)\d+/Is
993
994/(.*(xyz))\d+\2/I
995
996/((.*))\d+\1/I
997 abc123bc
998
999/a[b]/I
1000
1001/(?=a).*/I
1002
1003/(?=abc).xyz/IiI
1004
1005/(?=abc)(?i).xyz/I
1006
1007/(?=a)(?=b)/I
1008
1009/(?=.)a/I
1010
1011/((?=abcda)a)/I
1012
1013/((?=abcda)ab)/I
1014
1015/()a/I
1016
1017/(?(1)ab|ac)(.)/I
1018
1019/(?(1)abz|acz)(.)/I
1020
1021/(?(1)abz)(.)/I
1022
1023/(?(1)abz)(1)23/I
1024
1025/(a)+/I
1026
1027/(a){2,3}/I
1028
1029/(a)*/I
1030
1031/[a]/I
1032
1033/[ab]/I
1034
1035/[ab]/IS
1036
1037/[^a]/I
1038
1039/\d456/I
1040
1041/\d456/IS
1042
1043/a^b/I
1044
1045/^a/Im
1046 abcde
1047 xy\nabc
1048 *** Failers
1049 xyabc
1050
1051/c|abc/I
1052
1053/(?i)[ab]/IS
1054
1055/[ab](?i)cd/IS
1056
1057/abc(?C)def/I
1058 abcdef
1059 1234abcdef
1060 *** Failers
1061 abcxyz
1062 abcxyzf
1063
1064/abc(?C)de(?C1)f/I
1065 123abcdef
1066
1067/(?C1)\dabc(?C2)def/IS
1068 1234abcdef
1069 *** Failers
1070 abcdef
1071
1072/(?C1)\dabc(?C2)def/ISS
1073 1234abcdef
1074 *** Failers
1075 abcdef
1076
1077/(?C255)ab/I
1078
1079/(?C256)ab/I
1080
1081/(?Cab)xx/I
1082
1083/(?C12vr)x/I
1084
1085/abc(?C)def/I
1086 *** Failers
1087 \x83\x0\x61bcdef
1088
1089/(abc)(?C)de(?C1)f/I
1090 123abcdef
1091 123abcdef\C+
1092 123abcdef\C-
1093 *** Failers
1094 123abcdef\C!1
1095
1096/(?C0)(abc(?C1))*/I
1097 abcabcabc
1098 abcabc\C!1!3
1099 *** Failers
1100 abcabcabc\C!1!3
1101
1102/(\d{3}(?C))*/I
1103 123\C+
1104 123456\C+
1105 123456789\C+
1106
1107/((xyz)(?C)p|(?C1)xyzabc)/I
1108 xyzabc\C+
1109
1110/(X)((xyz)(?C)p|(?C1)xyzabc)/I
1111 Xxyzabc\C+
1112
1113/(?=(abc))(?C)abcdef/I
1114 abcdef\C+
1115
1116/(?!(abc)(?C1)d)(?C2)abcxyz/I
1117 abcxyz\C+
1118
1119/(?<=(abc)(?C))xyz/I
1120 abcxyz\C+
1121
1122/a(b+)(c*)(?C1)/I
1123 abbbbbccc\C*1
1124
1125/a(b+?)(c*?)(?C1)/I
1126 abbbbbccc\C*1
1127
1128/(?C)abc/I
1129
1130/(?C)^abc/I
1131
1132/(?C)a|b/IS
1133
1134/(?R)/I
1135
1136/(a|(?R))/I
1137
1138/(ab|(bc|(de|(?R))))/I
1139
1140/x(ab|(bc|(de|(?R))))/I
1141 xab
1142 xbc
1143 xde
1144 xxab
1145 xxxab
1146 *** Failers
1147 xyab
1148
1149/(ab|(bc|(de|(?1))))/I
1150
1151/x(ab|(bc|(de|(?1)x)x)x)/I
1152
1153/^([^()]|\((?1)*\))*$/I
1154 abc
1155 a(b)c
1156 a(b(c))d
1157 *** Failers)
1158 a(b(c)d
1159
1160/^>abc>([^()]|\((?1)*\))*<xyz<$/I
1161 >abc>123<xyz<
1162 >abc>1(2)3<xyz<
1163 >abc>(1(2)3)<xyz<
1164
1165/(a(?1)b)/DZ
1166
1167/(a(?1)+b)/DZ
1168
1169/^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
1170 12
1171 (((2+2)*-3)-7)
1172 -12
1173 *** Failers
1174 ((2+2)*-3)-7)
1175
1176/^(x(y|(?1){2})z)/I
1177 xyz
1178 xxyzxyzz
1179 *** Failers
1180 xxyzz
1181 xxyzxyzxyzz
1182
1183/((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/Ix
1184 <>
1185 <abcd>
1186 <abc <123> hij>
1187 <abc <def> hij>
1188 <abc<>def>
1189 <abc<>
1190 *** Failers
1191 <abc
1192
1193/(?1)/I
1194
1195/((?2)(abc)/I
1196
1197/^(abc)def(?1)/I
1198 abcdefabc
1199
1200/^(a|b|c)=(?1)+/I
1201 a=a
1202 a=b
1203 a=bc
1204
1205/^(a|b|c)=((?1))+/I
1206 a=a
1207 a=b
1208 a=bc
1209
1210/a(?P<name1>b|c)d(?P<longername2>e)/DZ
1211 abde
1212 acde
1213
1214/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
1215
1216/(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
1217
1218/^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/Ii
1219 1221
1220 Satan, oscillate my metallic sonatas!
1221 A man, a plan, a canal: Panama!
1222 Able was I ere I saw Elba.
1223 *** Failers
1224 The quick brown fox
1225
1226/((?(R)a|b))\1(?1)?/I
1227 bb
1228 bbaa
1229
1230/(.*)a/Is
1231
1232/(.*)a\1/Is
1233
1234/(.*)a(b)\2/Is
1235
1236/((.*)a|(.*)b)z/Is
1237
1238/((.*)a|(.*)b)z\1/Is
1239
1240/((.*)a|(.*)b)z\2/Is
1241
1242/((.*)a|(.*)b)z\3/Is
1243
1244/((.*)a|^(.*)b)z\3/Is
1245
1246/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
1247
1248/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
1249
1250/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
1251
1252/(a)(bc)/INDZ
1253 abc
1254
1255/(?P<one>a)(bc)/INDZ
1256 abc
1257
1258/(a)(?P<named>bc)/INDZ
1259
1260/(a+)*zz/I
1261 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
1262 aaaaaaaaaaaaaz\M
1263
1264/(aaa(?C1)bbb|ab)/I
1265 aaabbb
1266 aaabbb\C*0
1267 aaabbb\C*1
1268 aaabbb\C*-1
1269
1270/ab(?P<one>cd)ef(?P<two>gh)/I
1271 abcdefgh
1272 abcdefgh\C1\Gtwo
1273 abcdefgh\Cone\Ctwo
1274 abcdefgh\Cthree
1275
1276/(?P<Tes>)(?P<Test>)/DZ
1277
1278/(?P<Test>)(?P<Tes>)/DZ
1279
1280/(?P<Z>zz)(?P<A>aa)/I
1281 zzaa\CZ
1282 zzaa\CA
1283
1284/(?P<x>eks)(?P<x>eccs)/I
1285
1286/(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
1287
1288"\[((?P<elem>\d+)(,(?P>elem))*)\]"I
1289 [10,20,30,5,5,4,4,2,43,23,4234]
1290 *** Failers
1291 []
1292
1293"\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
1294 [10,20,30,5,5,4,4,2,43,23,4234]
1295 []
1296
1297/(a(b(?2)c))?/DZ
1298
1299/(a(b(?2)c))*/DZ
1300
1301/(a(b(?2)c)){0,2}/DZ
1302
1303/[ab]{1}+/DZ
1304
1305/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
1306 Baby Bjorn Active Carrier - With free SHIPPING!!
1307
1308/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
1309 Baby Bjorn Active Carrier - With free SHIPPING!!
1310
1311/a*.*b/ISDZ
1312
1313/(a|b)*.?c/ISDZ
1314
1315/abc(?C255)de(?C)f/DZ
1316
1317/abcde/ICDZ
1318 abcde
1319 abcdfe
1320
1321/a*b/ICDZS
1322 ab
1323 aaaab
1324 aaaacb
1325
1326/a*b/ICDZSS
1327 ab
1328 aaaab
1329 aaaacb
1330
1331/a+b/ICDZ
1332 ab
1333 aaaab
1334 aaaacb
1335
1336/(abc|def)x/ICDZS
1337 abcx
1338 defx
1339 ** Failers
1340 abcdefzx
1341
1342/(abc|def)x/ICDZSS
1343 abcx
1344 defx
1345 ** Failers
1346 abcdefzx
1347
1348/(ab|cd){3,4}/IC
1349 ababab
1350 abcdabcd
1351 abcdcdcdcdcd
1352
1353/([ab]{,4}c|xy)/ICDZS
1354 Note: that { does NOT introduce a quantifier
1355
1356/([ab]{,4}c|xy)/ICDZSS
1357 Note: that { does NOT introduce a quantifier
1358
1359/([ab]{1,4}c|xy){4,5}?123/ICDZ
1360 aacaacaacaacaac123
1361
1362/\b.*/I
1363 ab cd\>1
1364
1365/\b.*/Is
1366 ab cd\>1
1367
1368/(?!.bcd).*/I
1369 Xbcd12345
1370
1371/abcde/I
1372 ab\P
1373 abc\P
1374 abcd\P
1375 abcde\P
1376 the quick brown abc\P
1377 ** Failers\P
1378 the quick brown abxyz fox\P
1379
1380"^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I
1381 13/05/04\P
1382 13/5/2004\P
1383 02/05/09\P
1384 1\P
1385 1/2\P
1386 1/2/0\P
1387 1/2/04\P
1388 0\P
1389 02/\P
1390 02/0\P
1391 02/1\P
1392 ** Failers\P
1393 \P
1394 123\P
1395 33/4/04\P
1396 3/13/04\P
1397 0/1/2003\P
1398 0/\P
1399 02/0/\P
1400 02/13\P
1401
1402/0{0,2}ABC/I
1403
1404/\d{3,}ABC/I
1405
1406/\d*ABC/I
1407
1408/[abc]+DE/I
1409
1410/[abc]?123/I
1411 123\P
1412 a\P
1413 b\P
1414 c\P
1415 c12\P
1416 c123\P
1417
1418/^(?:\d){3,5}X/I
1419 1\P
1420 123\P
1421 123X
1422 1234\P
1423 1234X
1424 12345\P
1425 12345X
1426 *** Failers
1427 1X
1428 123456\P
1429
1430/abc/IS>testsavedregex
1431<testsavedregex
1432 abc
1433 ** Failers
1434 bca
1435
1436/abc/ISS>testsavedregex
1437<testsavedregex
1438 abc
1439 ** Failers
1440 bca
1441
1442/abc/IFS>testsavedregex
1443<testsavedregex
1444 abc
1445 ** Failers
1446 bca
1447
1448/abc/IFSS>testsavedregex
1449<testsavedregex
1450 abc
1451 ** Failers
1452 bca
1453
1454/(a|b)/IS>testsavedregex
1455<testsavedregex
1456 abc
1457 ** Failers
1458 def
1459
1460/(a|b)/ISS>testsavedregex
1461<testsavedregex
1462 abc
1463 ** Failers
1464 def
1465
1466/(a|b)/ISF>testsavedregex
1467<testsavedregex
1468 abc
1469 ** Failers
1470 def
1471
1472/(a|b)/ISSF>testsavedregex
1473<testsavedregex
1474 abc
1475 ** Failers
1476 def
1477
1478~<(\w+)/?>(.)*</(\1)>~smgI
1479 \J1024<!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>
1480
1481/^a/IF
1482
1483/line\nbreak/I
1484 this is a line\nbreak
1485 line one\nthis is a line\nbreak in the second line
1486
1487/line\nbreak/If
1488 this is a line\nbreak
1489 ** Failers
1490 line one\nthis is a line\nbreak in the second line
1491
1492/line\nbreak/Imf
1493 this is a line\nbreak
1494 ** Failers
1495 line one\nthis is a line\nbreak in the second line
1496
1497/ab.cd/P
1498 ab-cd
1499 ab=cd
1500 ** Failers
1501 ab\ncd
1502
1503/ab.cd/Ps
1504 ab-cd
1505 ab=cd
1506 ab\ncd
1507
1508/(?i)(?-i)AbCd/I
1509 AbCd
1510 ** Failers
1511 abcd
1512
1513/a{11111111111111111111}/I
1514
1515/(){64294967295}/I
1516
1517/(){2,4294967295}/I
1518
1519"(?i:a)(?i:b)(?i:c)(?i:d)(?i:e)(?i:f)(?i:g)(?i:h)(?i:i)(?i:j)(k)(?i:l)A\1B"I
1520 abcdefghijklAkB
1521
1522"(?P<n0>a)(?P<n1>b)(?P<n2>c)(?P<n3>d)(?P<n4>e)(?P<n5>f)(?P<n6>g)(?P<n7>h)(?P<n8>i)(?P<n9>j)(?P<n10>k)(?P<n11>l)A\11B"I
1523 abcdefghijklAkB
1524
1525"(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
1526 abcdefghijklAkB
1527
1528"(?P<name0>a)(?P<name1>a)(?P<name2>a)(?P<name3>a)(?P<name4>a)(?P<name5>a)(?P<name6>a)(?P<name7>a)(?P<name8>a)(?P<name9>a)(?P<name10>a)(?P<name11>a)(?P<name12>a)(?P<name13>a)(?P<name14>a)(?P<name15>a)(?P<name16>a)(?P<name17>a)(?P<name18>a)(?P<name19>a)(?P<name20>a)(?P<name21>a)(?P<name22>a)(?P<name23>a)(?P<name24>a)(?P<name25>a)(?P<name26>a)(?P<name27>a)(?P<name28>a)(?P<name29>a)(?P<name30>a)(?P<name31>a)(?P<name32>a)(?P<name33>a)(?P<name34>a)(?P<name35>a)(?P<name36>a)(?P<name37>a)(?P<name38>a)(?P<name39>a)(?P<name40>a)(?P<name41>a)(?P<name42>a)(?P<name43>a)(?P<name44>a)(?P<name45>a)(?P<name46>a)(?P<name47>a)(?P<name48>a)(?P<name49>a)(?P<name50>a)(?P<name51>a)(?P<name52>a)(?P<name53>a)(?P<name54>a)(?P<name55>a)(?P<name56>a)(?P<name57>a)(?P<name58>a)(?P<name59>a)(?P<name60>a)(?P<name61>a)(?P<name62>a)(?P<name63>a)(?P<name64>a)(?P<name65>a)(?P<name66>a)(?P<name67>a)(?P<name68>a)(?P<name69>a)(?P<name70>a)(?P<name71>a)(?P<name72>a)(?P<name73>a)(?P<name74>a)(?P<name75>a)(?P<name76>a)(?P<name77>a)(?P<name78>a)(?P<name79>a)(?P<name80>a)(?P<name81>a)(?P<name82>a)(?P<name83>a)(?P<name84>a)(?P<name85>a)(?P<name86>a)(?P<name87>a)(?P<name88>a)(?P<name89>a)(?P<name90>a)(?P<name91>a)(?P<name92>a)(?P<name93>a)(?P<name94>a)(?P<name95>a)(?P<name96>a)(?P<name97>a)(?P<name98>a)(?P<name99>a)(?P<name100>a)"I
1529 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1530
1531"(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)"I
1532 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1533
1534/[^()]*(?:\((?R)\)[^()]*)*/I
1535 (this(and)that
1536 (this(and)that)
1537 (this(and)that)stuff
1538
1539/[^()]*(?:\((?>(?R))\)[^()]*)*/I
1540 (this(and)that
1541 (this(and)that)
1542
1543/[^()]*(?:\((?R)\))*[^()]*/I
1544 (this(and)that
1545 (this(and)that)
1546
1547/(?:\((?R)\))*[^()]*/I
1548 (this(and)that
1549 (this(and)that)
1550 ((this))
1551
1552/(?:\((?R)\))|[^()]*/I
1553 (this(and)that
1554 (this(and)that)
1555 (this)
1556 ((this))
1557
1558/a(b)c/PN
1559 abc
1560
1561/a(?P<name>b)c/PN
1562 abc
1563
1564/\x{100}/I
1565
1566/\x{0000ff}/I
1567
1568/^((?P<A>a1)|(?P<A>a2)b)/I
1569
1570/^((?P<A>a1)|(?P<A>a2)b)/IJ
1571 a1b\CA
1572 a2b\CA
1573 ** Failers
1574 a1b\CZ\CA
1575
1576/^(?P<A>a)(?P<A>b)/IJ
1577 ab\CA
1578
1579/^(?P<A>a)(?P<A>b)|cd/IJ
1580 ab\CA
1581 cd\CA
1582
1583/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
1584 cdefgh\CA
1585
1586/^((?P<A>a1)|(?P<A>a2)b)/IJ
1587 a1b\GA
1588 a2b\GA
1589 ** Failers
1590 a1b\GZ\GA
1591
1592/^(?P<A>a)(?P<A>b)/IJ
1593 ab\GA
1594
1595/^(?P<A>a)(?P<A>b)|cd/IJ
1596 ab\GA
1597 cd\GA
1598
1599/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
1600 cdefgh\GA
1601
1602/(?J)^((?P<A>a1)|(?P<A>a2)b)/I
1603 a1b\CA
1604 a2b\CA
1605
1606/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I
1607
1608/ In this next test, J is not set at the outer level; consequently it isn't
1609set in the pattern's options; consequently pcre_get_named_substring() produces
1610a random value. /Ix
1611
1612/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
1613 a bc d\CA\CB\CC
1614
1615/^(?P<A>a)?(?(A)a|b)/I
1616 aabc
1617 bc
1618 ** Failers
1619 abc
1620
1621/(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
1622 bXaX
1623
1624/(?:(?(2y)a|b)(X))+/I
1625
1626/(?:(?(ZA)a|b)(?P<ZZ>X))+/I
1627
1628/(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
1629 bbXaaX
1630
1631/(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
1632 (b)\\Xa\\X
1633
1634/(?P<ABC/I
1635
1636/(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
1637 bXXaYYaY
1638 bXYaXXaX
1639
1640/()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
1641 bXXaYYaY
1642
1643/\777/I
1644
1645/\s*,\s*/IS
1646 \x0b,\x0b
1647 \x0c,\x0d
1648
1649/^abc/Im
1650 xyz\nabc
1651 xyz\nabc\<lf>
1652 xyz\r\nabc\<lf>
1653 xyz\rabc\<cr>
1654 xyz\r\nabc\<crlf>
1655 ** Failers
1656 xyz\nabc\<cr>
1657 xyz\r\nabc\<cr>
1658 xyz\nabc\<crlf>
1659 xyz\rabc\<crlf>
1660 xyz\rabc\<lf>
1661
1662/abc$/Im<lf>
1663 xyzabc
1664 xyzabc\n
1665 xyzabc\npqr
1666 xyzabc\r\<cr>
1667 xyzabc\rpqr\<cr>
1668 xyzabc\r\n\<crlf>
1669 xyzabc\r\npqr\<crlf>
1670 ** Failers
1671 xyzabc\r
1672 xyzabc\rpqr
1673 xyzabc\r\n
1674 xyzabc\r\npqr
1675
1676/^abc/Im<cr>
1677 xyz\rabcdef
1678 xyz\nabcdef\<lf>
1679 ** Failers
1680 xyz\nabcdef
1681
1682/^abc/Im<lf>
1683 xyz\nabcdef
1684 xyz\rabcdef\<cr>
1685 ** Failers
1686 xyz\rabcdef
1687
1688/^abc/Im<crlf>
1689 xyz\r\nabcdef
1690 xyz\rabcdef\<cr>
1691 ** Failers
1692 xyz\rabcdef
1693
1694/^abc/Im<bad>
1695
1696/abc/I
1697 xyz\rabc\<bad>
1698 abc
1699
1700/.*/I<lf>
1701 abc\ndef
1702 abc\rdef
1703 abc\r\ndef
1704 \<cr>abc\ndef
1705 \<cr>abc\rdef
1706 \<cr>abc\r\ndef
1707 \<crlf>abc\ndef
1708 \<crlf>abc\rdef
1709 \<crlf>abc\r\ndef
1710
1711/\w+(.)(.)?def/Is
1712 abc\ndef
1713 abc\rdef
1714 abc\r\ndef
1715
1716+((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
1717 /* this is a C style comment */\M
1718
1719/(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I
1720
1721/()()()()()()()()()()()()()()()()()()()()
1722 ()()()()()()()()()()()()()()()()()()()()
1723 ()()()()()()()()()()()()()()()()()()()()
1724 ()()()()()()()()()()()()()()()()()()()()
1725 ()()()()()()()()()()()()()()()()()()()()
1726 (.(.))/Ix
1727 XY\O400
1728
1729/(a*b|(?i:c*(?-i)d))/IS
1730
1731/()[ab]xyz/IS
1732
1733/(|)[ab]xyz/IS
1734
1735/(|c)[ab]xyz/IS
1736
1737/(|c?)[ab]xyz/IS
1738
1739/(d?|c?)[ab]xyz/IS
1740
1741/(d?|c)[ab]xyz/IS
1742
1743/^a*b\d/DZ
1744
1745/^a*+b\d/DZ
1746
1747/^a*?b\d/DZ
1748
1749/^a+A\d/DZ
1750 aaaA5
1751 ** Failers
1752 aaaa5
1753
1754/^a*A\d/IiDZ
1755 aaaA5
1756 aaaa5
1757
1758/(a*|b*)[cd]/IS
1759
1760/(a+|b*)[cd]/IS
1761
1762/(a*|b+)[cd]/IS
1763
1764/(a+|b+)[cd]/IS
1765
1766/((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
1767 ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
1768 (((
1769 a
1770 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
1771 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
1772 )))
1773/Ix
1774 large nest
1775
1776/a*\d/BZ
1777
1778/a*\D/BZ
1779
1780/0*\d/BZ
1781
1782/0*\D/BZ
1783
1784/a*\s/BZ
1785
1786/a*\S/BZ
1787
1788/ *\s/BZ
1789
1790/ *\S/BZ
1791
1792/a*\w/BZ
1793
1794/a*\W/BZ
1795
1796/=*\w/BZ
1797
1798/=*\W/BZ
1799
1800/\d*a/BZ
1801
1802/\d*2/BZ
1803
1804/\d*\d/BZ
1805
1806/\d*\D/BZ
1807
1808/\d*\s/BZ
1809
1810/\d*\S/BZ
1811
1812/\d*\w/BZ
1813
1814/\d*\W/BZ
1815
1816/\D*a/BZ
1817
1818/\D*2/BZ
1819
1820/\D*\d/BZ
1821
1822/\D*\D/BZ
1823
1824/\D*\s/BZ
1825
1826/\D*\S/BZ
1827
1828/\D*\w/BZ
1829
1830/\D*\W/BZ
1831
1832/\s*a/BZ
1833
1834/\s*2/BZ
1835
1836/\s*\d/BZ
1837
1838/\s*\D/BZ
1839
1840/\s*\s/BZ
1841
1842/\s*\S/BZ
1843
1844/\s*\w/BZ
1845
1846/\s*\W/BZ
1847
1848/\S*a/BZ
1849
1850/\S*2/BZ
1851
1852/\S*\d/BZ
1853
1854/\S*\D/BZ
1855
1856/\S*\s/BZ
1857
1858/\S*\S/BZ
1859
1860/\S*\w/BZ
1861
1862/\S*\W/BZ
1863
1864/\w*a/BZ
1865
1866/\w*2/BZ
1867
1868/\w*\d/BZ
1869
1870/\w*\D/BZ
1871
1872/\w*\s/BZ
1873
1874/\w*\S/BZ
1875
1876/\w*\w/BZ
1877
1878/\w*\W/BZ
1879
1880/\W*a/BZ
1881
1882/\W*2/BZ
1883
1884/\W*\d/BZ
1885
1886/\W*\D/BZ
1887
1888/\W*\s/BZ
1889
1890/\W*\S/BZ
1891
1892/\W*\w/BZ
1893
1894/\W*\W/BZ
1895
1896/[^a]+a/BZ
1897
1898/[^a]+a/BZi
1899
1900/[^a]+A/BZi
1901
1902/[^a]+b/BZ
1903
1904/[^a]+\d/BZ
1905
1906/a*[^a]/BZ
1907
1908/(?P<abc>x)(?P<xyz>y)/I
1909 xy\Cabc\Cxyz
1910
1911/(?<abc>x)(?'xyz'y)/I
1912 xy\Cabc\Cxyz
1913
1914/(?<abc'x)(?'xyz'y)/I
1915
1916/(?<abc>x)(?'xyz>y)/I
1917
1918/(?P'abc'x)(?P<xyz>y)/I
1919
1920/^(?:(?(ZZ)a|b)(?<ZZ>X))+/
1921 bXaX
1922 bXbX
1923 ** Failers
1924 aXaX
1925 aXbX
1926
1927/^(?P>abc)(?<abcd>xxx)/
1928
1929/^(?P>abc)(?<abc>x|y)/
1930 xx
1931 xy
1932 yy
1933 yx
1934
1935/^(?P>abc)(?P<abc>x|y)/
1936 xx
1937 xy
1938 yy
1939 yx
1940
1941/^((?(abc)a|b)(?<abc>x|y))+/
1942 bxay
1943 bxby
1944 ** Failers
1945 axby
1946
1947/^(((?P=abc)|X)(?<abc>x|y))+/
1948 XxXxxx
1949 XxXyyx
1950 XxXyxx
1951 ** Failers
1952 x
1953
1954/^(?1)(abc)/
1955 abcabc
1956
1957/^(?:(?:\1|X)(a|b))+/
1958 Xaaa
1959 Xaba
1960
1961/^[\E\Qa\E-\Qz\E]+/BZ
1962
1963/^[a\Q]bc\E]/BZ
1964
1965/^[a-\Q\E]/BZ
1966
1967/^(?P>abc)[()](?<abc>)/BZ
1968
1969/^((?(abc)y)[()](?P<abc>x))+/BZ
1970 (xy)x
1971
1972/^(?P>abc)\Q()\E(?<abc>)/BZ
1973
1974/^(?P>abc)[a\Q(]\E(](?<abc>)/BZ
1975
1976/^(?P>abc) # this is (a comment)
1977 (?<abc>)/BZx
1978
1979/^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii
1980 1221
1981 Satan, oscillate my metallic sonatas!
1982 A man, a plan, a canal: Panama!
1983 Able was I ere I saw Elba.
1984 *** Failers
1985 The quick brown fox
1986
1987/(?=(\w+))\1:/I
1988 abcd:
1989
1990/(?=(?'abc'\w+))\k<abc>:/I
1991 abcd:
1992
1993/(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
1994 adaa
1995 ** Failers
1996 addd
1997 adbb
1998
1999/(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J
2000 bdaa
2001 bdab
2002 ** Failers
2003 bddd
2004
2005/(?(<bc))/
2006
2007/(?(''))/
2008
2009/(?('R')stuff)/
2010
2011/((abc (?(R) (?(R1)1) (?(R2)2) X | (?1) (?2) (?R) ))) /x
2012 abcabc1Xabc2XabcXabcabc
2013
2014/(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
2015 abcabc1Xabc2XabcXabcabc
2016
2017/(?<A> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
2018
2019/(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
2020 abcabc1Xabc2XabcXabcabc
2021
2022/^(?(DEFINE) abc | xyz ) /x
2023
2024/(?(DEFINE) abc) xyz/xI
2025
2026/(a|)*\d/
2027 \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
2028 \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
2029
2030/^a.b/<lf>
2031 a\rb
2032 a\nb\<cr>
2033 a\x85b\<anycrlf>
2034 ** Failers
2035 a\nb
2036 a\nb\<any>
2037 a\rb\<cr>
2038 a\rb\<any>
2039 a\x85b\<any>
2040 a\rb\<anycrlf>
2041
2042/^abc./mgx<any>
2043 abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
2044
2045/abc.$/mgx<any>
2046 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
2047
2048/a/<cr><any>
2049
2050/a/<any><crlf>
2051
2052/^a\Rb/<bsr_unicode>
2053 a\nb
2054 a\rb
2055 a\r\nb
2056 a\x0bb
2057 a\x0cb
2058 a\x85b
2059 ** Failers
2060 a\n\rb
2061
2062/^a\R*b/<bsr_unicode>
2063 ab
2064 a\nb
2065 a\rb
2066 a\r\nb
2067 a\x0bb
2068 a\x0cb
2069 a\x85b
2070 a\n\rb
2071 a\n\r\x85\x0cb
2072
2073/^a\R+b/<bsr_unicode>
2074 a\nb
2075 a\rb
2076 a\r\nb
2077 a\x0bb
2078 a\x0cb
2079 a\x85b
2080 a\n\rb
2081 a\n\r\x85\x0cb
2082 ** Failers
2083 ab
2084
2085/^a\R{1,3}b/<bsr_unicode>
2086 a\nb
2087 a\n\rb
2088 a\n\r\x85b
2089 a\r\n\r\nb
2090 a\r\n\r\n\r\nb
2091 a\n\r\n\rb
2092 a\n\n\r\nb
2093 ** Failers
2094 a\n\n\n\rb
2095 a\r
2096
2097/^a[\R]b/<bsr_unicode>
2098 aRb
2099 ** Failers
2100 a\nb
2101
2102/(?&abc)X(?<abc>P)/I
2103 abcPXP123
2104
2105/(?1)X(?<abc>P)/I
2106 abcPXP123
2107
2108/(?:a(?&abc)b)*(?<abc>x)/
2109 123axbaxbaxbx456
2110 123axbaxbaxb456
2111
2112/(?:a(?&abc)b){1,5}(?<abc>x)/
2113 123axbaxbaxbx456
2114
2115/(?:a(?&abc)b){2,5}(?<abc>x)/
2116 123axbaxbaxbx456
2117
2118/(?:a(?&abc)b){2,}(?<abc>x)/
2119 123axbaxbaxbx456
2120
2121/(abc)(?i:(?1))/
2122 defabcabcxyz
2123 DEFabcABCXYZ
2124
2125/(abc)(?:(?i)(?1))/
2126 defabcabcxyz
2127 DEFabcABCXYZ
2128
2129/^(a)\g-2/
2130
2131/^(a)\g/
2132
2133/^(a)\g{0}/
2134
2135/^(a)\g{3/
2136
2137/^(a)\g{4a}/
2138
2139/^a.b/<lf>
2140 a\rb
2141 *** Failers
2142 a\nb
2143
2144/.+foo/
2145 afoo
2146 ** Failers
2147 \r\nfoo
2148 \nfoo
2149
2150/.+foo/<crlf>
2151 afoo
2152 \nfoo
2153 ** Failers
2154 \r\nfoo
2155
2156/.+foo/<any>
2157 afoo
2158 ** Failers
2159 \nfoo
2160 \r\nfoo
2161
2162/.+foo/s
2163 afoo
2164 \r\nfoo
2165 \nfoo
2166
2167/^$/mg<any>
2168 abc\r\rxyz
2169 abc\n\rxyz
2170 ** Failers
2171 abc\r\nxyz
2172
2173/(?m)^$/<any>g+
2174 abc\r\n\r\n
2175
2176/(?m)^$|^\r\n/<any>g+
2177 abc\r\n\r\n
2178
2179/(?m)$/<any>g+
2180 abc\r\n\r\n
2181
2182/abc.$/mgx<anycrlf>
2183 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
2184
2185/^X/m
2186 XABC
2187 ** Failers
2188 XABC\B
2189
2190/(ab|c)(?-1)/BZ
2191 abc
2192
2193/xy(?+1)(abc)/BZ
2194 xyabcabc
2195 ** Failers
2196 xyabc
2197
2198/x(?-0)y/
2199
2200/x(?-1)y/
2201
2202/x(?+0)y/
2203
2204/x(?+1)y/
2205
2206/^(abc)?(?(-1)X|Y)/BZ
2207 abcX
2208 Y
2209 ** Failers
2210 abcY
2211
2212/^((?(+1)X|Y)(abc))+/BZ
2213 YabcXabc
2214 YabcXabcXabc
2215 ** Failers
2216 XabcXabc
2217
2218/(?(-1)a)/BZ
2219
2220/((?(-1)a))/BZ
2221
2222/((?(-2)a))/BZ
2223
2224/^(?(+1)X|Y)(.)/BZ
2225 Y!
2226
2227/(?<A>tom|bon)-\k{A}/
2228 tom-tom
2229 bon-bon
2230 ** Failers
2231 tom-bon
2232
2233/\g{A/
2234
2235/(?|(abc)|(xyz))/BZ
2236 >abc<
2237 >xyz<
2238
2239/(x)(?|(abc)|(xyz))(x)/BZ
2240 xabcx
2241 xxyzx
2242
2243/(x)(?|(abc)(pqr)|(xyz))(x)/BZ
2244 xabcpqrx
2245 xxyzx
2246
2247/[\h]/BZ
2248 >\x09<
2249
2250/[\h]+/BZ
2251 >\x09\x20\xa0<
2252
2253/[\v]/BZ
2254
2255/[\H]/BZ
2256
2257/[^\h]/BZ
2258
2259/[\V]/BZ
2260
2261/[\x0a\V]/BZ
2262
2263/\H++X/BZ
2264 ** Failers
2265 XXXX
2266
2267/\H+\hY/BZ
2268 XXXX Y
2269
2270/\H+ Y/BZ
2271
2272/\h+A/BZ
2273
2274/\v*B/BZ
2275
2276/\V+\x0a/BZ
2277
2278/A+\h/BZ
2279
2280/ *\H/BZ
2281
2282/A*\v/BZ
2283
2284/\x0b*\V/BZ
2285
2286/\d+\h/BZ
2287
2288/\d*\v/BZ
2289
2290/S+\h\S+\v/BZ
2291
2292/\w{3,}\h\w+\v/BZ
2293
2294/\h+\d\h+\w\h+\S\h+\H/BZ
2295
2296/\v+\d\v+\w\v+\S\v+\V/BZ
2297
2298/\H+\h\H+\d/BZ
2299
2300/\V+\v\V+\w/BZ
2301
2302/\( (?: [^()]* | (?R) )* \)/x
2303\J1024(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
2304
2305/[\E]AAA/
2306
2307/[\Q\E]AAA/
2308
2309/[^\E]AAA/
2310
2311/[^\Q\E]AAA/
2312
2313/[\E^]AAA/
2314
2315/[\Q\E^]AAA/
2316
2317/A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
2318
2319/^a+(*FAIL)/C
2320 aaaaaa
2321
2322/a+b?c+(*FAIL)/C
2323 aaabccc
2324
2325/a+b?(*PRUNE)c+(*FAIL)/C
2326 aaabccc
2327
2328/a+b?(*COMMIT)c+(*FAIL)/C
2329 aaabccc
2330
2331/a+b?(*SKIP)c+(*FAIL)/C
2332 aaabcccaaabccc
2333
2334/a+b?(*THEN)c+(*FAIL)/C
2335 aaabccc
2336
2337/a(*MARK)b/
2338
2339/(?i:A{1,}\6666666666)/
2340
2341/\g6666666666/
2342
2343/[\g6666666666]/BZ
2344
2345/(?1)\c[/
2346
2347/.+A/<crlf>
2348 \r\nA
2349
2350/\nA/<crlf>
2351 \r\nA
2352
2353/[\r\n]A/<crlf>
2354 \r\nA
2355
2356/(\r|\n)A/<crlf>
2357 \r\nA
2358
2359/a(*CR)b/
2360
2361/(*CR)a.b/
2362 a\nb
2363 ** Failers
2364 a\rb
2365
2366/(*CR)a.b/<lf>
2367 a\nb
2368 ** Failers
2369 a\rb
2370
2371/(*LF)a.b/<CRLF>
2372 a\rb
2373 ** Failers
2374 a\nb
2375
2376/(*CRLF)a.b/
2377 a\rb
2378 a\nb
2379 ** Failers
2380 a\r\nb
2381
2382/(*ANYCRLF)a.b/<CR>
2383 ** Failers
2384 a\rb
2385 a\nb
2386 a\r\nb
2387
2388/(*ANY)a.b/<cr>
2389 ** Failers
2390 a\rb
2391 a\nb
2392 a\r\nb
2393 a\x85b
2394
2395/(*ANY).*/g
2396 abc\r\ndef
2397
2398/(*ANYCRLF).*/g
2399 abc\r\ndef
2400
2401/(*CRLF).*/g
2402 abc\r\ndef
2403
2404/a\Rb/I<bsr_anycrlf>
2405 a\rb
2406 a\nb
2407 a\r\nb
2408 ** Failers
2409 a\x85b
2410 a\x0bb
2411
2412/a\Rb/I<bsr_unicode>
2413 a\rb
2414 a\nb
2415 a\r\nb
2416 a\x85b
2417 a\x0bb
2418 ** Failers
2419 a\x85b\<bsr_anycrlf>
2420 a\x0bb\<bsr_anycrlf>
2421
2422/a\R?b/I<bsr_anycrlf>
2423 a\rb
2424 a\nb
2425 a\r\nb
2426 ** Failers
2427 a\x85b
2428 a\x0bb
2429
2430/a\R?b/I<bsr_unicode>
2431 a\rb
2432 a\nb
2433 a\r\nb
2434 a\x85b
2435 a\x0bb
2436 ** Failers
2437 a\x85b\<bsr_anycrlf>
2438 a\x0bb\<bsr_anycrlf>
2439
2440/a\R{2,4}b/I<bsr_anycrlf>
2441 a\r\n\nb
2442 a\n\r\rb
2443 a\r\n\r\n\r\n\r\nb
2444 ** Failers
2445 a\x85\85b
2446 a\x0b\0bb
2447
2448/a\R{2,4}b/I<bsr_unicode>
2449 a\r\rb
2450 a\n\n\nb
2451 a\r\n\n\r\rb
2452 a\x85\85b
2453 a\x0b\0bb
2454 ** Failers
2455 a\r\r\r\r\rb
2456 a\x85\85b\<bsr_anycrlf>
2457 a\x0b\0bb\<bsr_anycrlf>
2458
2459/(*BSR_ANYCRLF)a\Rb/I
2460 a\nb
2461 a\rb
2462
2463/(*BSR_UNICODE)a\Rb/I
2464 a\x85b
2465
2466/(*BSR_ANYCRLF)(*CRLF)a\Rb/I
2467 a\nb
2468 a\rb
2469
2470/(*CRLF)(*BSR_UNICODE)a\Rb/I
2471 a\x85b
2472
2473/(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
2474
2475/(?<a>)(?&)/
2476
2477/(?<abc>)(?&a)/
2478
2479/(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
2480
2481/(?+-a)/
2482
2483/(?-+a)/
2484
2485/(?(-1))/
2486
2487/(?(+10))/
2488
2489/(?(10))/
2490
2491/(?(+2))()()/
2492
2493/(?(2))()()/
2494
2495/\k''/
2496
2497/\k<>/
2498
2499/\k{}/
2500
2501/\k/
2502
2503/\kabc/
2504
2505/(?P=)/
2506
2507/(?P>)/
2508
2509/(?!\w)(?R)/
2510
2511/(?=\w)(?R)/
2512
2513/(?<!\w)(?R)/
2514
2515/(?<=\w)(?R)/
2516
2517/[[:foo:]]/
2518
2519/[[:1234:]]/
2520
2521/[[:f\oo:]]/
2522
2523/[[: :]]/
2524
2525/[[:...:]]/
2526
2527/[[:l\ower:]]/
2528
2529/[[:abc\:]]/
2530
2531/[abc[:x\]pqr:]]/
2532
2533/[[:a\dz:]]/
2534
2535/(^(a|b\g<-1'c))/
2536
2537/^(?+1)(?<a>x|y){0}z/
2538 xzxx
2539 yzyy
2540 ** Failers
2541 xxz
2542
2543/(\3)(\1)(a)/
2544 cat
2545
2546/(\3)(\1)(a)/<JS>
2547 cat
2548
2549/TA]/
2550 The ACTA] comes
2551
2552/TA]/<JS>
2553 The ACTA] comes
2554
2555/(?2)[]a()b](abc)/
2556 abcbabc
2557
2558/(?2)[^]a()b](abc)/
2559 abcbabc
2560
2561/(?1)[]a()b](abc)/
2562 abcbabc
2563 ** Failers
2564 abcXabc
2565
2566/(?1)[^]a()b](abc)/
2567 abcXabc
2568 ** Failers
2569 abcbabc
2570
2571/(?2)[]a()b](abc)(xyz)/
2572 xyzbabcxyz
2573
2574/(?&N)[]a(?<N>)](?<M>abc)/
2575 abc<abc
2576
2577/(?&N)[]a(?<N>)](abc)/
2578 abc<abc
2579
2580/a[]b/
2581
2582/a[^]b/
2583
2584/a[]b/<JS>
2585 ** Failers
2586 ab
2587
2588/a[]+b/<JS>
2589 ** Failers
2590 ab
2591
2592/a[]*+b/<JS>
2593 ** Failers
2594 ab
2595
2596/a[^]b/<JS>
2597 aXb
2598 a\nb
2599 ** Failers
2600 ab
2601
2602/a[^]+b/<JS>
2603 aXb
2604 a\nX\nXb
2605 ** Failers
2606 ab
2607
2608/a(?!)+b/
2609
2610/a(*FAIL)+b/
2611
2612/(abc|pqr|123){0}[xyz]/SI
2613
2614/(?(?=.*b)b|^)/CI
2615 adc
2616 abc
2617
2618/(?(?=b).*b|^d)/I
2619
2620/(?(?=.*b).*b|^d)/I
2621
2622/a?|b?/P
2623 abc
2624 ** Failers
2625 ddd\N
2626
2627/xyz/C
2628 xyz
2629 abcxyz
2630 abcxyz\Y
2631 ** Failers
2632 abc
2633 abc\Y
2634 abcxypqr
2635 abcxypqr\Y
2636
2637/(*NO_START_OPT)xyz/C
2638 abcxyz
2639
2640/xyz/CY
2641 abcxyz
2642
2643/^"((?(?=[a])[^"])|b)*"$/C
2644 "ab"
2645
2646/^"((?(?=[a])[^"])|b)*"$/
2647 "ab"
2648
2649/^X(?5)(a)(?|(b)|(q))(c)(d)Y/
2650 XYabcdY
2651
2652/^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
2653 XYabcdY
2654
2655/Xa{2,4}b/
2656 X\P
2657 Xa\P
2658 Xaa\P
2659 Xaaa\P
2660 Xaaaa\P
2661
2662/Xa{2,4}?b/
2663 X\P
2664 Xa\P
2665 Xaa\P
2666 Xaaa\P
2667 Xaaaa\P
2668
2669/Xa{2,4}+b/
2670 X\P
2671 Xa\P
2672 Xaa\P
2673 Xaaa\P
2674 Xaaaa\P
2675
2676/X\d{2,4}b/
2677 X\P
2678 X3\P
2679 X33\P
2680 X333\P
2681 X3333\P
2682
2683/X\d{2,4}?b/
2684 X\P
2685 X3\P
2686 X33\P
2687 X333\P
2688 X3333\P
2689
2690/X\d{2,4}+b/
2691 X\P
2692 X3\P
2693 X33\P
2694 X333\P
2695 X3333\P
2696
2697/X\D{2,4}b/
2698 X\P
2699 Xa\P
2700 Xaa\P
2701 Xaaa\P
2702 Xaaaa\P
2703
2704/X\D{2,4}?b/
2705 X\P
2706 Xa\P
2707 Xaa\P
2708 Xaaa\P
2709 Xaaaa\P
2710
2711/X\D{2,4}+b/
2712 X\P
2713 Xa\P
2714 Xaa\P
2715 Xaaa\P
2716 Xaaaa\P
2717
2718/X[abc]{2,4}b/
2719 X\P
2720 Xa\P
2721 Xaa\P
2722 Xaaa\P
2723 Xaaaa\P
2724
2725/X[abc]{2,4}?b/
2726 X\P
2727 Xa\P
2728 Xaa\P
2729 Xaaa\P
2730 Xaaaa\P
2731
2732/X[abc]{2,4}+b/
2733 X\P
2734 Xa\P
2735 Xaa\P
2736 Xaaa\P
2737 Xaaaa\P
2738
2739/X[^a]{2,4}b/
2740 X\P
2741 Xz\P
2742 Xzz\P
2743 Xzzz\P
2744 Xzzzz\P
2745
2746/X[^a]{2,4}?b/
2747 X\P
2748 Xz\P
2749 Xzz\P
2750 Xzzz\P
2751 Xzzzz\P
2752
2753/X[^a]{2,4}+b/
2754 X\P
2755 Xz\P
2756 Xzz\P
2757 Xzzz\P
2758 Xzzzz\P
2759
2760/(Y)X\1{2,4}b/
2761 YX\P
2762 YXY\P
2763 YXYY\P
2764 YXYYY\P
2765 YXYYYY\P
2766
2767/(Y)X\1{2,4}?b/
2768 YX\P
2769 YXY\P
2770 YXYY\P
2771 YXYYY\P
2772 YXYYYY\P
2773
2774/(Y)X\1{2,4}+b/
2775 YX\P
2776 YXY\P
2777 YXYY\P
2778 YXYYY\P
2779 YXYYYY\P
2780
2781/\++\KZ|\d+X|9+Y/
2782 ++++123999\P
2783 ++++123999Y\P
2784 ++++Z1234\P
2785
2786/Z(*F)/
2787 Z\P
2788 ZA\P
2789
2790/Z(?!)/
2791 Z\P
2792 ZA\P
2793
2794/dog(sbody)?/
2795 dogs\P
2796 dogs\P\P
2797
2798/dog(sbody)??/
2799 dogs\P
2800 dogs\P\P
2801
2802/dog|dogsbody/
2803 dogs\P
2804 dogs\P\P
2805
2806/dogsbody|dog/
2807 dogs\P
2808 dogs\P\P
2809
2810/\bthe cat\b/
2811 the cat\P
2812 the cat\P\P
2813
2814/abc/
2815 abc\P
2816 abc\P\P
2817
2818/\w+A/P
2819 CDAAAAB
2820
2821/\w+A/PU
2822 CDAAAAB
2823
2824/abc\K123/
2825 xyzabc123pqr
2826 xyzabc12\P
2827 xyzabc12\P\P
2828
2829/(?<=abc)123/
2830 xyzabc123pqr
2831 xyzabc12\P
2832 xyzabc12\P\P
2833
2834/\babc\b/
2835 +++abc+++
2836 +++ab\P
2837 +++ab\P\P
2838
2839/(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
2840
2841/(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
2842
2843/(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
2844
2845/abc\K/+
2846 abcdef
2847 abcdef\N\N
2848 xyzabcdef\N\N
2849 ** Failers
2850 abcdef\N
2851 xyzabcdef\N
2852
2853/^(?:(?=abc)|abc\K)/+
2854 abcdef
2855 abcdef\N\N
2856 ** Failers
2857 abcdef\N
2858
2859/a?b?/+
2860 xyz
2861 xyzabc
2862 xyzabc\N
2863 xyzabc\N\N
2864 xyz\N\N
2865 ** Failers
2866 xyz\N
2867
2868/^a?b?/+
2869 xyz
2870 xyzabc
2871 ** Failers
2872 xyzabc\N
2873 xyzabc\N\N
2874 xyz\N\N
2875 xyz\N
2876
2877/^(?<name>a|b\g<name>c)/
2878 aaaa
2879 bacxxx
2880 bbaccxxx
2881 bbbacccxx
2882
2883/^(?<name>a|b\g'name'c)/
2884 aaaa
2885 bacxxx
2886 bbaccxxx
2887 bbbacccxx
2888
2889/^(a|b\g<1>c)/
2890 aaaa
2891 bacxxx
2892 bbaccxxx
2893 bbbacccxx
2894
2895/^(a|b\g'1'c)/
2896 aaaa
2897 bacxxx
2898 bbaccxxx
2899 bbbacccxx
2900
2901/^(a|b\g'-1'c)/
2902 aaaa
2903 bacxxx
2904 bbaccxxx
2905 bbbacccxx
2906
2907/(^(a|b\g<-1>c))/
2908 aaaa
2909 bacxxx
2910 bbaccxxx
2911 bbbacccxx
2912
2913/(?-i:\g<name>)(?i:(?<name>a))/
2914 XaaX
2915 XAAX
2916
2917/(?i:\g<name>)(?-i:(?<name>a))/
2918 XaaX
2919 ** Failers
2920 XAAX
2921
2922/(?-i:\g<+1>)(?i:(a))/
2923 XaaX
2924 XAAX
2925
2926/(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/
2927
2928/(?<n>a|b|c)\g<n>*/
2929 abc
2930 accccbbb
2931
2932/^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
2933 XYabcdY
2934
2935/(?<=b(?1)|zzz)(a)/
2936 xbaax
2937 xzzzax
2938
2939/(a)(?<=b\1)/
2940
2941/(a)(?<=b+(?1))/
2942
2943/(a+)(?<=b(?1))/
2944
2945/(a(?<=b(?1)))/
2946
2947/(?<=b(?1))xyz/
2948
2949/(?<=b(?1))xyz(b+)pqrstuvew/
2950
2951/(a|bc)\1/SI
2952
2953/(a|bc)\1{2,3}/SI
2954
2955/(a|bc)(?1)/SI
2956
2957/(a|b\1)(a|b\1)/SI
2958
2959/(a|b\1){2}/SI
2960
2961/(a|bbbb\1)(a|bbbb\1)/SI
2962
2963/(a|bbbb\1){2}/SI
2964
2965/^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]/SI
2966
2967/ (?: [\040\t] | \(
2968(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
2969\) )* # optional leading comment
2970(?: (?:
2971[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2972(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2973|
2974" (?: # opening quote...
2975[^\\\x80-\xff\n\015"] # Anything except backslash and quote
2976| # or
2977\\ [^\x80-\xff] # Escaped something (something != CR)
2978)* " # closing quote
2979) # initial word
2980(?: (?: [\040\t] | \(
2981(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
2982\) )* \. (?: [\040\t] | \(
2983(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
2984\) )* (?:
2985[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2986(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2987|
2988" (?: # opening quote...
2989[^\\\x80-\xff\n\015"] # Anything except backslash and quote
2990| # or
2991\\ [^\x80-\xff] # Escaped something (something != CR)
2992)* " # closing quote
2993) )* # further okay, if led by a period
2994(?: [\040\t] | \(
2995(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
2996\) )* @ (?: [\040\t] | \(
2997(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
2998\) )* (?:
2999[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
3000(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3001| \[ # [
3002(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
3003\] # ]
3004) # initial subdomain
3005(?: #
3006(?: [\040\t] | \(
3007(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
3008\) )* \. # if led by a period...
3009(?: [\040\t] | \(
3010(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
3011\) )* (?:
3012[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
3013(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3014| \[ # [
3015(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
3016\] # ]
3017) # ...further okay
3018)*
3019# address
3020| # or
3021(?:
3022[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
3023(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3024|
3025" (?: # opening quote...
3026[^\\\x80-\xff\n\015"] # Anything except backslash and quote
3027| # or
3028\\ [^\x80-\xff] # Escaped something (something != CR)
3029)* " # closing quote
3030) # one word, optionally followed by....
3031(?:
3032[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or...
3033\(
3034(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
3035\) | # comments, or...
3036
3037" (?: # opening quote...
3038[^\\\x80-\xff\n\015"] # Anything except backslash and quote
3039| # or
3040\\ [^\x80-\xff] # Escaped something (something != CR)
3041)* " # closing quote
3042# quoted strings
3043)*
3044< (?: [\040\t] | \(
3045(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
3046\) )* # leading <
3047(?: @ (?: [\040\t] | \(
3048(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
3049\) )* (?:
3050[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
3051(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3052| \[ # [
3053(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
3054\] # ]
3055) # initial subdomain
3056(?: #
3057(?: [\040\t] | \(
3058(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
3059\) )* \. # if led by a period...
3060(?: [\040\t] | \(
3061(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
3062\) )* (?:
3063[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
3064(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3065| \[ # [
3066(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
3067\] # ]
3068) # ...further okay
3069)*
3070
3071(?: (?: [\040\t] | \(
3072(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
3073\) )* , (?: [\040\t] | \(
3074(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
3075\) )* @ (?: [\040\t] | \(
3076(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
3077\) )* (?:
3078[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
3079(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3080| \[ # [
3081(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
3082\] # ]
3083) # initial subdomain
3084(?: #
3085(?: [\040\t] | \(
3086(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
3087\) )* \. # if led by a period...
3088(?: [\040\t] | \(
3089(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
3090\) )* (?:
3091[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
3092(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3093| \[ # [
3094(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
3095\] # ]
3096) # ...further okay
3097)*
3098)* # further okay, if led by comma
3099: # closing colon
3100(?: [\040\t] | \(
3101(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
3102\) )* )? # optional route
3103(?:
3104[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
3105(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3106|
3107" (?: # opening quote...
3108[^\\\x80-\xff\n\015"] # Anything except backslash and quote
3109| # or
3110\\ [^\x80-\xff] # Escaped something (something != CR)
3111)* " # closing quote
3112) # initial word
3113(?: (?: [\040\t] | \(
3114(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
3115\) )* \. (?: [\040\t] | \(
3116(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
3117\) )* (?:
3118[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
3119(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3120|
3121" (?: # opening quote...
3122[^\\\x80-\xff\n\015"] # Anything except backslash and quote
3123| # or
3124\\ [^\x80-\xff] # Escaped something (something != CR)
3125)* " # closing quote
3126) )* # further okay, if led by a period
3127(?: [\040\t] | \(
3128(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
3129\) )* @ (?: [\040\t] | \(
3130(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
3131\) )* (?:
3132[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
3133(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3134| \[ # [
3135(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
3136\] # ]
3137) # initial subdomain
3138(?: #
3139(?: [\040\t] | \(
3140(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
3141\) )* \. # if led by a period...
3142(?: [\040\t] | \(
3143(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
3144\) )* (?:
3145[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
3146(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
3147| \[ # [
3148(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
3149\] # ]
3150) # ...further okay
3151)*
3152# address spec
3153(?: [\040\t] | \(
3154(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
3155\) )* > # trailing >
3156# name and address
3157) (?: [\040\t] | \(
3158(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
3159\) )* # optional trailing comment
3160/xSI
3161
3162/<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>/isIS
3163
3164"(?>.*/)foo"SI
3165
3166/(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /xSI
3167
3168/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
3169
3170/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
3171
3172/<a[\s]+href[\s]*=[\s]* # find <a href=
3173 ([\"\'])? # find single or double quote
3174 (?(1) (.*?)\1 | ([^\s]+)) # if quote found, match up to next matching
3175 # quote, otherwise match up to next space
3176/isxSI
3177
3178/^(?!:) # colon disallowed at start
3179 (?: # start of item
3180 (?: [0-9a-f]{1,4} | # 1-4 hex digits or
3181 (?(1)0 | () ) ) # if null previously matched, fail; else null
3182 : # followed by colon
3183 ){1,7} # end item; 1-7 of them required
3184 [0-9a-f]{1,4} $ # final hex number at end of string
3185 (?(1)|.) # check that there was an empty component
3186 /xiIS
3187
3188/(?|(?<a>A)|(?<a>B))/I
3189 AB\Ca
3190 BA\Ca
3191
3192/(?|(?<a>A)|(?<b>B))/
3193
3194/(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
3195 b(?<quote> (?<apostrophe>')|(?<realquote>")) )
3196 (?('quote')[a-z]+|[0-9]+)/JIx
3197 a"aaaaa
3198 b"aaaaa
3199 ** Failers
3200 b"11111
3201 a"11111
3202
3203/^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
3204 abcdX
3205 eX
3206 ** Failers
3207 abcdY
3208 ey
3209
3210/(?<A>a) (b)(c) (?<A>d (?(R&A)$ | (?4)) )/JDZx
3211 abcdd
3212 ** Failers
3213 abcdde
3214
3215/abcd*/
3216 xxxxabcd\P
3217 xxxxabcd\P\P
3218
3219/abcd*/i
3220 xxxxabcd\P
3221 xxxxabcd\P\P
3222 XXXXABCD\P
3223 XXXXABCD\P\P
3224
3225/abc\d*/
3226 xxxxabc1\P
3227 xxxxabc1\P\P
3228
3229/(a)bc\1*/
3230 xxxxabca\P
3231 xxxxabca\P\P
3232
3233/abc[de]*/
3234 xxxxabcde\P
3235 xxxxabcde\P\P
3236
3237/-- This is not in the Perl >= 5.10 test because Perl seems currently to be
3238 broken and not behaving as specified in that it *does* bumpalong after
3239 hitting (*COMMIT). --/
3240
3241/(?1)(A(*COMMIT)|B)D/
3242 ABD
3243 XABD
3244 BAD
3245 ABXABD
3246 ** Failers
3247 ABX
3248 BAXBAD
3249
3250/(\3)(\1)(a)/<JS>
3251 cat
3252
3253/(\3)(\1)(a)/SI<JS>
3254 cat
3255
3256/(\3)(\1)(a)/SI
3257 cat
3258
3259/i(?(DEFINE)(?<s>a))/SI
3260 i
3261
3262/()i(?(1)a)/SI
3263 ia
3264
3265/(?i)a(?-i)b|c/BZ
3266 XabX
3267 XAbX
3268 CcC
3269 ** Failers
3270 XABX
3271
3272/(?i)a(?s)b|c/BZ
3273
3274/(?i)a(?s-i)b|c/BZ
3275
3276/^(ab(c\1)d|x){2}$/BZ
3277 xabcxd
3278
3279/^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
3280
3281/^(?&t)*(?(DEFINE)(?<t>.))$/BZ
3282
3283/ -- The first four of these are not in the Perl >= 5.10 test because Perl
3284 documents that the use of \K in assertions is "not well defined". The
3285 last is here because Perl gives the match as "b" rather than "ab". I
3286 believe this to be a Perl bug. --/
3287
3288/(?=a\Kb)ab/
3289 ab
3290
3291/(?!a\Kb)ac/
3292 ac
3293
3294/^abc(?<=b\Kc)d/
3295 abcd
3296
3297/^abc(?<!b\Kq)d/
3298 abcd
3299
3300/(?>a\Kb)z|(ab)/
3301 ab
3302
3303/----------------------/
3304
3305/(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
3306
3307/abc(*MARK:)pqr/
3308
3309/abc(*:)pqr/
3310
3311/abc(*FAIL:123)xyz/
3312
3313/--- This should, and does, fail. In Perl, it does not, which I think is a
3314 bug because replacing the B in the pattern by (B|D) does make it fail. ---/
3315
3316/A(*COMMIT)B/+K
3317 ACABX
3318
3319/--- These should be different, but in Perl 5.11 are not, which I think
3320 is a bug in Perl. ---/
3321
3322/A(*THEN)B|A(*THEN)C/K
3323 AC
3324
3325/A(*PRUNE)B|A(*PRUNE)C/K
3326 AC
3327
3328/--- This should fail; the SKIP advances by one, but when we get to AC, the
3329 PRUNE kills it. Perl behaves differently. ---/
3330
3331/A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
3332 AAAC
3333
3334/--- Mark names can be duplicated. Perl doesn't give a mark for this one,
3335though PCRE does. ---/
3336
3337/^A(*:A)B|^X(*:A)Y/K
3338 ** Failers
3339 XAQQ
3340
3341/--- COMMIT at the start of a pattern should be the same as an anchor. Perl
3342optimizations defeat this. So does the PCRE optimization unless we disable it
3343with \Y. ---/
3344
3345/(*COMMIT)ABC/
3346 ABCDEFG
3347 ** Failers
3348 DEFGABC\Y
3349
3350/^(ab (c+(*THEN)cd) | xyz)/x
3351 abcccd
3352
3353/^(ab (c+(*PRUNE)cd) | xyz)/x
3354 abcccd
3355
3356/^(ab (c+(*FAIL)cd) | xyz)/x
3357 abcccd
3358
3359/--- Perl 5.11 gets some of these wrong ---/
3360
3361/(?>.(*ACCEPT))*?5/
3362 abcde
3363
3364/(.(*ACCEPT))*?5/
3365 abcde
3366
3367/(.(*ACCEPT))5/
3368 abcde
3369
3370/(.(*ACCEPT))*5/
3371 abcde
3372
3373/A\NB./BZ
3374 ACBD
3375 *** Failers
3376 A\nB
3377 ACB\n
3378
3379/A\NB./sBZ
3380 ACBD
3381 ACB\n
3382 *** Failers
3383 A\nB
3384
3385/A\NB/<crlf>
3386 A\nB
3387 A\rB
3388 ** Failers
3389 A\r\nB
3390
3391/\R+b/BZ
3392
3393/\R+\n/BZ
3394
3395/\R+\d/BZ
3396
3397/\d*\R/BZ
3398
3399/\s*\R/BZ
3400
3401/-- Perl treats this one differently, not failing the second string. I believe
3402 that is a bug in Perl. --/
3403
3404/^((abc|abcx)(*THEN)y|abcd)/
3405 abcd
3406 *** Failers
3407 abcxy
3408
3409/(?<=abc)def/
3410 abc\P\P
3411
3412/abc$/
3413 abc
3414 abc\P
3415 abc\P\P
3416
3417/abc$/m
3418 abc
3419 abc\n
3420 abc\P\P
3421 abc\n\P\P
3422 abc\P
3423 abc\n\P
3424
3425/abc\z/
3426 abc
3427 abc\P
3428 abc\P\P
3429
3430/abc\Z/
3431 abc
3432 abc\P
3433 abc\P\P
3434
3435/abc\b/
3436 abc
3437 abc\P
3438 abc\P\P
3439
3440/abc\B/
3441 abc
3442 abc\P
3443 abc\P\P
3444
3445/.+/
3446 abc\>0
3447 abc\>1
3448 abc\>2
3449 abc\>3
3450 abc\>4
3451 abc\>-4
3452
3453/^\cģ/
3454
3455/(?P<abn>(?P=abn)xxx)/BZ
3456
3457/(a\1z)/BZ
3458
3459/(?P<abn>(?P=abn)(?<badstufxxx)/BZ
3460
3461/(?P<abn>(?P=axn)xxx)/BZ
3462
3463/(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
3464
3465/-- These tests are here because Perl gets the first one wrong. --/
3466
3467/(\R*)(.)/s
3468 \r\n
3469 \r\r\n\n\r
3470 \r\r\n\n\r\n
3471
3472/(\R)*(.)/s
3473 \r\n
3474 \r\r\n\n\r
3475 \r\r\n\n\r\n
3476
3477/((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
3478 \r\n
3479 \r\r\n\n\r
3480 \r\r\n\n\r\n
3481
3482/-- --/
3483
3484/^abc$/BZ
3485
3486/^abc$/BZm
3487
3488/^(a)*+(\w)/S
3489 aaaaX
3490 ** Failers
3491 aaaa
3492
3493/^(?:a)*+(\w)/S
3494 aaaaX
3495 ** Failers
3496 aaaa
3497
3498/(a)++1234/SDZ
3499
3500/([abc])++1234/SI
3501
3502/(?<=(abc)+)X/
3503
3504/(^ab)/I
3505
3506/(^ab)++/I
3507
3508/(^ab|^)+/I
3509
3510/(^ab|^)++/I
3511
3512/(?:^ab)/I
3513
3514/(?:^ab)++/I
3515
3516/(?:^ab|^)+/I
3517
3518/(?:^ab|^)++/I
3519
3520/(.*ab)/I
3521
3522/(.*ab)++/I
3523
3524/(.*ab|.*)+/I
3525
3526/(.*ab|.*)++/I
3527
3528/(?:.*ab)/I
3529
3530/(?:.*ab)++/I
3531
3532/(?:.*ab|.*)+/I
3533
3534/(?:.*ab|.*)++/I
3535
3536/(?=a)[bcd]/I
3537
3538/((?=a))[bcd]/I
3539
3540/((?=a))+[bcd]/I
3541
3542/((?=a))++[bcd]/I
3543
3544/(?=a+)[bcd]/iI
3545
3546/(?=a+?)[bcd]/iI
3547
3548/(?=a++)[bcd]/iI
3549
3550/(?=a{3})[bcd]/iI
3551
3552/(abc)\1+/S
3553
3554/-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
3555
3556/(?1)(?:(b(*ACCEPT))){0}/
3557 b
3558
3559/(?1)(?:(b(*ACCEPT))){0}c/
3560 bc
3561 ** Failers
3562 b
3563
3564/(?1)(?:((*ACCEPT))){0}c/
3565 c
3566 c\N
3567
3568/^.*?(?(?=a)a|b(*THEN)c)/
3569 ba
3570
3571/^.*?(?(?=a)a|bc)/
3572 ba
3573
3574/^.*?(?(?=a)a(*THEN)b|c)/
3575 ac
3576
3577/^.*?(?(?=a)a(*THEN)b)c/
3578 ac
3579
3580/^.*?(a(*THEN)b)c/
3581 aabc
3582
3583/^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
3584 aabc
3585
3586/^.*?(a(*THEN)b|z)c/
3587 aabc
3588
3589/^.*?(z|a(*THEN)b)c/
3590 aabc
3591
3592/-- --/
3593
3594/-- These studied versions are here because they are not Perl-compatible; the
3595 studying means the mark is not seen. --/
3596
3597/(*MARK:A)(*SKIP:B)(C|X)/KS
3598 C
3599 D
3600
3601/(*:A)A+(*SKIP:A)(B|Z)/KS
3602 AAAC
3603
3604/-- --/
3605
3606"(?=a*(*ACCEPT)b)c"
3607 c
3608 c\N
3609
3610/(?1)c(?(DEFINE)((*ACCEPT)b))/
3611 c
3612 c\N
3613
3614/(?>(*ACCEPT)b)c/
3615 c
3616 c\N
3617
3618/(?:(?>(a)))+a%/++
3619 %aa%
3620
3621/(a)b|ac/++SS
3622 ac\O3
3623
3624/(a)(b)x|abc/++
3625 abc\O6
3626
3627/(a)bc|(a)(b)\2/
3628 \O3abc
3629 \O4abc
3630
3631/(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
3632
3633/(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
3634
3635/(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
3636
3637/(abc)(?1)/SI
3638
3639/^(?>a)++/
3640 aa\M
3641 aaaaaaaaa\M
3642
3643/(a)(?1)++/
3644 aa\M
3645 aaaaaaaaa\M
3646
3647/(?:(foo)|(bar)|(baz))X/SS=
3648 bazfooX
3649 foobazbarX
3650 barfooX
3651 bazX
3652 foobarbazX
3653 bazfooX\O0
3654 bazfooX\O2
3655 bazfooX\O4
3656 bazfooX\O6
3657 bazfooX\O8
3658 bazfooX\O10
3659
3660/(?=abc){3}abc/BZ
3661
3662/(?=abc)+abc/BZ
3663
3664/(?=abc)++abc/BZ
3665
3666/(?=abc){0}xyz/BZ
3667
3668/(?=(a))?./BZ
3669
3670/(?=(a))??./BZ
3671
3672/^(?=(a)){0}b(?1)/BZ
3673
3674/(?(DEFINE)(a))?b(?1)/BZ
3675
3676/^(?=(?1))?[az]([abc])d/BZ
3677
3678/^(?!a){0}\w+/BZ
3679
3680/(?<=(abc))?xyz/BZ
3681
3682/[:a[:abc]b:]/BZ
3683
3684/((?2))((?1))/SS
3685 abc
3686
3687/((?(R2)a+|(?1)b))/SS
3688 aaaabcde
3689
3690/(?(R)a*(?1)|((?R))b)/SS
3691 aaaabcde
3692
3693/(a+|(?R)b)/
3694
3695/^(a(*:A)(d|e(*:B))z|aeq)/C
3696 adz
3697 aez
3698 aeqwerty
3699
3700/.(*F)/
3701 \P\Pabc
3702
3703/\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
3704
3705/\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
3706
3707/a(*SKIP)c|b(*ACCEPT)|/+SI
3708 a
3709
3710/a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
3711 ax
3712
3713'a*(*ACCEPT)b'+
3714 \N\N
3715 abc\N\N
3716 bbb\N\N
3717
3718/(*ACCEPT)a/+I
3719 bax
3720
3721/z(*ACCEPT)a/+I
3722 baxzbx
3723
3724/a(?:.)*?a/ims
3725 \Mabbbbbbbbbbbbbbbbbbbbba
3726
3727/a(?:.(*THEN))*?a/ims
3728 \Mabbbbbbbbbbbbbbbbbbbbba
3729
3730/a(?:.(*THEN:ABC))*?a/ims
3731 \Mabbbbbbbbbbbbbbbbbbbbba
3732
3733/-- These tests are in agreement with development Perl 5.015, which has fixed
3734 some things, but they don't all work with 5.012, so they aren't in the
3735 Perl-compatible tests. Those after the first come from Perl's own test
3736 files. --/
3737
3738/^((yes|no)(*THEN)(*F))?/
3739 yes
3740
3741/(A (.*) C? (*THEN) | A D) (*FAIL)/x
3742AbcdCBefgBhiBqz
3743
3744/(A (.*) C? (*THEN) | A D) z/x
3745AbcdCBefgBhiBqz
3746
3747/(A (.*) C? (*THEN) | A D) \s* (*FAIL)/x
3748AbcdCBefgBhiBqz
3749
3750/(A (.*) C? (*THEN) | A D) \s* z/x
3751AbcdCBefgBhiBqz
3752
3753/(A (.*) (?:C|) (*THEN) | A D) (*FAIL)/x
3754AbcdCBefgBhiBqz
3755
3756/(A (.*) (?:C|) (*THEN) | A D) z/x
3757AbcdCBefgBhiBqz
3758
3759/(A (.*) C{0,6} (*THEN) | A D) (*FAIL)/x
3760AbcdCBefgBhiBqz
3761
3762/(A (.*) C{0,6} (*THEN) | A D) z/x
3763AbcdCBefgBhiBqz
3764
3765/(A (.*) (CE){0,6} (*THEN) | A D) (*FAIL)/x
3766AbcdCEBefgBhiBqz
3767
3768/(A (.*) (CE){0,6} (*THEN) | A D) z/x
3769AbcdCEBefgBhiBqz
3770
3771/(A (.*) (CE*){0,6} (*THEN) | A D) (*FAIL)/x
3772AbcdCBefgBhiBqz
3773
3774/(A (.*) (CE*){0,6} (*THEN) | A D) z/x
3775AbcdCBefgBhiBqz
3776
3777/-----------------------------------------------/
3778
3779/^(?>a+)(?>(z+))\w/BZ
3780 aaaazzzzb
3781 ** Failers
3782 aazz
3783
3784/(.)(\1|a(?2))/
3785 bab
3786
3787/\1|(.)(?R)\1/
3788 cbbbc
3789
3790/(.)((?(1)c|a)|a(?2))/
3791 baa
3792
3793/(?P<abn>(?P=abn)xxx)/BZ
3794
3795/(a\1z)/BZ
3796
3797/^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
3798 \Maabbccddee
3799
3800/^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
3801 \Maabbccddee
3802
3803/^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
3804 \Maabbccddee
3805
3806/^a\x41z/<JS>
3807 aAz
3808 *** Failers
3809 ax41z
3810
3811/^a[m\x41]z/<JS>
3812 aAz
3813
3814/^a\x1z/<JS>
3815 ax1z
3816
3817/^a\u0041z/<JS>
3818 aAz
3819 *** Failers
3820 au0041z
3821
3822/^a[m\u0041]z/<JS>
3823 aAz
3824
3825/^a\u041z/<JS>
3826 au041z
3827 *** Failers
3828 aAz
3829
3830/^a\U0041z/<JS>
3831 aU0041z
3832 *** Failers
3833 aAz
3834
3835/(?(?=c)c|d)++Y/BZ
3836
3837/(?(?=c)c|d)*+Y/BZ
3838
3839/a[\NB]c/
3840 aNc
3841
3842/a[B-\Nc]/
3843
3844/(a)(?2){0,1999}?(b)/
3845
3846/(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
3847
3848/--- This test, with something more complicated than individual letters, causes
3849different behaviour in Perl. Perhaps it disables some optimization; no tag is
3850passed back for the failures, whereas in PCRE there is a tag. ---/
3851
3852/(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
3853 AABC
3854 XXYZ
3855 ** Failers
3856 XAQQ
3857 XAQQXZZ
3858 AXQQQ
3859 AXXQQQ
3860
3861/-- Perl doesn't give marks for these, though it does if the alternatives are
3862replaced by single letters. --/
3863
3864/(b|q)(*:m)f|a(*:n)w/K
3865 aw
3866 ** Failers
3867 abc
3868
3869/(q|b)(*:m)f|a(*:n)w/K
3870 aw
3871 ** Failers
3872 abc
3873
3874/-- After a partial match, the behaviour is as for a failure. --/
3875
3876/^a(*:X)bcde/K
3877 abc\P
3878
3879/-- End of testinput2 --/