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

Contents of /code/trunk/testdata/testinput2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 618 - (hide annotations) (download)
Sat Jul 16 17:24:16 2011 UTC (3 years, 2 months ago) by ph10
File size: 69113 byte(s)
Re-do atomic group processing to fix backtrack capture bugs. Recursion is also 
re-worked.

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