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