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