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