/[pcre]/code/trunk/testdata/testinput2
ViewVC logotype

Contents of /code/trunk/testdata/testinput2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1313 - (hide annotations) (download)
Wed Apr 24 12:07:09 2013 UTC (8 weeks ago) by ph10
File size: 61799 byte(s)
Code (but not yet documentation) for *LIMIT_MATCH and *LIMIT_RECURSION.

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

Properties

Name Value
svn:keywords "Author Date Id Revision Url"

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12