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