• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# There are two sorts of patterns in this test. A number of them are
2# representative patterns whose lengths and offsets are checked. This is just a
3# doublecheck test to ensure the sizes don't go horribly wrong when something
4# is changed. The operation of these patterns is checked in other tests.
5#
6# This file also contains tests whose output varies with code unit size and/or
7# link size. Unicode support is required for these tests. There are separate
8# output files for each code unit size and link size.
9
10#pattern fullbincode,memory
11
12/((?i)b)/
13Memory allocation (code space): 21
14------------------------------------------------------------------
15  0  16 Bra
16  4   8 CBra 1
17 10  /i b
18 12   8 Ket
19 16  16 Ket
20 20     End
21------------------------------------------------------------------
22
23/(?s)(.*X|^B)/
24Memory allocation (code space): 30
25------------------------------------------------------------------
26  0  25 Bra
27  4  10 CBra 1
28 10     AllAny*
29 12     X
30 14   7 Alt
31 18     ^
32 19     B
33 21  17 Ket
34 25  25 Ket
35 29     End
36------------------------------------------------------------------
37
38/(?s:.*X|^B)/
39Memory allocation (code space): 28
40------------------------------------------------------------------
41  0  23 Bra
42  4   8 Bra
43  8     AllAny*
44 10     X
45 12   7 Alt
46 16     ^
47 17     B
48 19  15 Ket
49 23  23 Ket
50 27     End
51------------------------------------------------------------------
52
53/^[[:alnum:]]/
54Memory allocation (code space): 43
55------------------------------------------------------------------
56  0  38 Bra
57  4     ^
58  5     [0-9A-Za-z]
59 38  38 Ket
60 42     End
61------------------------------------------------------------------
62
63/#/Ix
64Memory allocation (code space): 9
65------------------------------------------------------------------
66  0   4 Bra
67  4   4 Ket
68  8     End
69------------------------------------------------------------------
70Capturing subpattern count = 0
71May match empty string
72Options: extended
73Subject length lower bound = 0
74
75/a#/Ix
76Memory allocation (code space): 11
77------------------------------------------------------------------
78  0   6 Bra
79  4     a
80  6   6 Ket
81 10     End
82------------------------------------------------------------------
83Capturing subpattern count = 0
84Options: extended
85First code unit = 'a'
86Subject length lower bound = 1
87
88/x?+/
89Memory allocation (code space): 11
90------------------------------------------------------------------
91  0   6 Bra
92  4     x?+
93  6   6 Ket
94 10     End
95------------------------------------------------------------------
96
97/x++/
98Memory allocation (code space): 11
99------------------------------------------------------------------
100  0   6 Bra
101  4     x++
102  6   6 Ket
103 10     End
104------------------------------------------------------------------
105
106/x{1,3}+/
107Memory allocation (code space): 15
108------------------------------------------------------------------
109  0  10 Bra
110  4     x
111  6     x{0,2}+
112 10  10 Ket
113 14     End
114------------------------------------------------------------------
115
116/(x)*+/
117Memory allocation (code space): 22
118------------------------------------------------------------------
119  0  17 Bra
120  4     Braposzero
121  5   8 CBraPos 1
122 11     x
123 13   8 KetRpos
124 17  17 Ket
125 21     End
126------------------------------------------------------------------
127
128/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/
129Memory allocation (code space): 132
130------------------------------------------------------------------
131  0 127 Bra
132  4     ^
133  5 118 CBra 1
134 11   8 CBra 2
135 17     a+
136 19   8 Ket
137 23  40 CBra 3
138 29     [ab]+?
139 63  40 Ket
140 67  40 CBra 4
141 73     [bc]+
142107  40 Ket
143111   8 CBra 5
144117     \w*+
145119   8 Ket
146123 118 Ket
147127 127 Ket
148131     End
149------------------------------------------------------------------
150
151"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"
152Memory allocation (code space): 828
153------------------------------------------------------------------
154  0 823 Bra
155  4     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
156822     \b
157823 823 Ket
158827     End
159------------------------------------------------------------------
160
161"\$\<\.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"
162Memory allocation (code space): 818
163------------------------------------------------------------------
164  0 813 Bra
165  4     $<.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
166812     \b
167813 813 Ket
168817     End
169------------------------------------------------------------------
170
171/(a(?1)b)/
172Memory allocation (code space): 27
173------------------------------------------------------------------
174  0  22 Bra
175  4  14 CBra 1
176 10     a
177 12   4 Recurse
178 16     b
179 18  14 Ket
180 22  22 Ket
181 26     End
182------------------------------------------------------------------
183
184/(a(?1)+b)/
185Memory allocation (code space): 35
186------------------------------------------------------------------
187  0  30 Bra
188  4  22 CBra 1
189 10     a
190 12   8 Once
191 16   4 Recurse
192 20   8 KetRmax
193 24     b
194 26  22 Ket
195 30  30 Ket
196 34     End
197------------------------------------------------------------------
198
199/a(?P<name1>b|c)d(?P<longername2>e)/
200Memory allocation (code space): 43
201------------------------------------------------------------------
202  0  38 Bra
203  4     a
204  6   8 CBra 1
205 12     b
206 14   6 Alt
207 18     c
208 20  14 Ket
209 24     d
210 26   8 CBra 2
211 32     e
212 34   8 Ket
213 38  38 Ket
214 42     End
215------------------------------------------------------------------
216
217/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/
218Memory allocation (code space): 55
219------------------------------------------------------------------
220  0  50 Bra
221  4  30 Bra
222  8     a
223 10  20 CBra 1
224 16     c
225 18   8 CBra 2
226 24     d
227 26   8 Ket
228 30  20 Ket
229 34  30 Ket
230 38   8 CBra 3
231 44     a
232 46   8 Ket
233 50  50 Ket
234 54     End
235------------------------------------------------------------------
236
237/(?P<a>a)...(?P=a)bbb(?P>a)d/
238Memory allocation (code space): 39
239------------------------------------------------------------------
240  0  34 Bra
241  4   8 CBra 1
242 10     a
243 12   8 Ket
244 16     Any
245 17     Any
246 18     Any
247 19     \1
248 22     bbb
249 28   4 Recurse
250 32     d
251 34  34 Ket
252 38     End
253------------------------------------------------------------------
254
255/abc(?C255)de(?C)f/
256Memory allocation (code space): 37
257------------------------------------------------------------------
258  0  32 Bra
259  4     abc
260 10     Callout 255 10 1
261 18     de
262 22     Callout 0 16 1
263 30     f
264 32  32 Ket
265 36     End
266------------------------------------------------------------------
267
268/abcde/auto_callout
269Memory allocation (code space): 67
270------------------------------------------------------------------
271  0  62 Bra
272  4     Callout 255 0 1
273 12     a
274 14     Callout 255 1 1
275 22     b
276 24     Callout 255 2 1
277 32     c
278 34     Callout 255 3 1
279 42     d
280 44     Callout 255 4 1
281 52     e
282 54     Callout 255 5 0
283 62  62 Ket
284 66     End
285------------------------------------------------------------------
286
287/\x{100}/utf
288Memory allocation (code space): 12
289------------------------------------------------------------------
290  0   7 Bra
291  4     \x{100}
292  7   7 Ket
293 11     End
294------------------------------------------------------------------
295
296/\x{1000}/utf
297Memory allocation (code space): 13
298------------------------------------------------------------------
299  0   8 Bra
300  4     \x{1000}
301  8   8 Ket
302 12     End
303------------------------------------------------------------------
304
305/\x{10000}/utf
306Memory allocation (code space): 14
307------------------------------------------------------------------
308  0   9 Bra
309  4     \x{10000}
310  9   9 Ket
311 13     End
312------------------------------------------------------------------
313
314/\x{100000}/utf
315Memory allocation (code space): 14
316------------------------------------------------------------------
317  0   9 Bra
318  4     \x{100000}
319  9   9 Ket
320 13     End
321------------------------------------------------------------------
322
323/\x{10ffff}/utf
324Memory allocation (code space): 14
325------------------------------------------------------------------
326  0   9 Bra
327  4     \x{10ffff}
328  9   9 Ket
329 13     End
330------------------------------------------------------------------
331
332/\x{110000}/utf
333Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large
334
335/[\x{ff}]/utf
336Memory allocation (code space): 12
337------------------------------------------------------------------
338  0   7 Bra
339  4     \x{ff}
340  7   7 Ket
341 11     End
342------------------------------------------------------------------
343
344/[\x{100}]/utf
345Memory allocation (code space): 12
346------------------------------------------------------------------
347  0   7 Bra
348  4     \x{100}
349  7   7 Ket
350 11     End
351------------------------------------------------------------------
352
353/\x80/utf
354Memory allocation (code space): 12
355------------------------------------------------------------------
356  0   7 Bra
357  4     \x{80}
358  7   7 Ket
359 11     End
360------------------------------------------------------------------
361
362/\xff/utf
363Memory allocation (code space): 12
364------------------------------------------------------------------
365  0   7 Bra
366  4     \x{ff}
367  7   7 Ket
368 11     End
369------------------------------------------------------------------
370
371/\x{0041}\x{2262}\x{0391}\x{002e}/I,utf
372Memory allocation (code space): 20
373------------------------------------------------------------------
374  0  15 Bra
375  4     A\x{2262}\x{391}.
376 15  15 Ket
377 19     End
378------------------------------------------------------------------
379Capturing subpattern count = 0
380Options: utf
381First code unit = 'A'
382Last code unit = '.'
383Subject length lower bound = 4
384
385/\x{D55c}\x{ad6d}\x{C5B4}/I,utf
386Memory allocation (code space): 21
387------------------------------------------------------------------
388  0  16 Bra
389  4     \x{d55c}\x{ad6d}\x{c5b4}
390 16  16 Ket
391 20     End
392------------------------------------------------------------------
393Capturing subpattern count = 0
394Options: utf
395First code unit = \xed
396Last code unit = \xb4
397Subject length lower bound = 3
398
399/\x{65e5}\x{672c}\x{8a9e}/I,utf
400Memory allocation (code space): 21
401------------------------------------------------------------------
402  0  16 Bra
403  4     \x{65e5}\x{672c}\x{8a9e}
404 16  16 Ket
405 20     End
406------------------------------------------------------------------
407Capturing subpattern count = 0
408Options: utf
409First code unit = \xe6
410Last code unit = \x9e
411Subject length lower bound = 3
412
413/[\x{100}]/utf
414Memory allocation (code space): 12
415------------------------------------------------------------------
416  0   7 Bra
417  4     \x{100}
418  7   7 Ket
419 11     End
420------------------------------------------------------------------
421
422/[Z\x{100}]/utf
423Memory allocation (code space): 50
424------------------------------------------------------------------
425  0  45 Bra
426  4     [Z\x{100}]
427 45  45 Ket
428 49     End
429------------------------------------------------------------------
430
431/^[\x{100}\E-\Q\E\x{150}]/utf
432Memory allocation (code space): 21
433------------------------------------------------------------------
434  0  16 Bra
435  4     ^
436  5     [\x{100}-\x{150}]
437 16  16 Ket
438 20     End
439------------------------------------------------------------------
440
441/^[\QĀ\E-\QŐ\E]/utf
442Memory allocation (code space): 21
443------------------------------------------------------------------
444  0  16 Bra
445  4     ^
446  5     [\x{100}-\x{150}]
447 16  16 Ket
448 20     End
449------------------------------------------------------------------
450
451/^[\QĀ\E-\QŐ\E/utf
452Failed: error 106 at offset 15: missing terminating ] for character class
453
454/[\p{L}]/
455Memory allocation (code space): 18
456------------------------------------------------------------------
457  0  13 Bra
458  4     [\p{L}]
459 13  13 Ket
460 17     End
461------------------------------------------------------------------
462
463/[\p{^L}]/
464Memory allocation (code space): 18
465------------------------------------------------------------------
466  0  13 Bra
467  4     [\P{L}]
468 13  13 Ket
469 17     End
470------------------------------------------------------------------
471
472/[\P{L}]/
473Memory allocation (code space): 18
474------------------------------------------------------------------
475  0  13 Bra
476  4     [\P{L}]
477 13  13 Ket
478 17     End
479------------------------------------------------------------------
480
481/[\P{^L}]/
482Memory allocation (code space): 18
483------------------------------------------------------------------
484  0  13 Bra
485  4     [\p{L}]
486 13  13 Ket
487 17     End
488------------------------------------------------------------------
489
490/[abc\p{L}\x{0660}]/utf
491Memory allocation (code space): 53
492------------------------------------------------------------------
493  0  48 Bra
494  4     [a-c\p{L}\x{660}]
495 48  48 Ket
496 52     End
497------------------------------------------------------------------
498
499/[\p{Nd}]/utf
500Memory allocation (code space): 18
501------------------------------------------------------------------
502  0  13 Bra
503  4     [\p{Nd}]
504 13  13 Ket
505 17     End
506------------------------------------------------------------------
507
508/[\p{Nd}+-]+/utf
509Memory allocation (code space): 51
510------------------------------------------------------------------
511  0  46 Bra
512  4     [+\-\p{Nd}]++
513 46  46 Ket
514 50     End
515------------------------------------------------------------------
516
517/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
518Memory allocation (code space): 27
519------------------------------------------------------------------
520  0  22 Bra
521  4  /i A\x{391}\x{10427}\x{ff3a}\x{1fb0}
522 22  22 Ket
523 26     End
524------------------------------------------------------------------
525
526/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
527Memory allocation (code space): 27
528------------------------------------------------------------------
529  0  22 Bra
530  4     A\x{391}\x{10427}\x{ff3a}\x{1fb0}
531 22  22 Ket
532 26     End
533------------------------------------------------------------------
534
535/[\x{105}-\x{109}]/i,utf
536Memory allocation (code space): 20
537------------------------------------------------------------------
538  0  15 Bra
539  4     [\x{104}-\x{109}]
540 15  15 Ket
541 19     End
542------------------------------------------------------------------
543
544/( ( (?(1)0|) )*   )/x
545Memory allocation (code space): 47
546------------------------------------------------------------------
547  0  42 Bra
548  4  34 CBra 1
549 10     Brazero
550 11  23 SCBra 2
551 17   9 Cond
552 21   1 Cond ref
553 24     0
554 26   4 Alt
555 30  13 Ket
556 34  23 KetRmax
557 38  34 Ket
558 42  42 Ket
559 46     End
560------------------------------------------------------------------
561
562/(  (?(1)0|)*   )/x
563Memory allocation (code space): 37
564------------------------------------------------------------------
565  0  32 Bra
566  4  24 CBra 1
567 10     Brazero
568 11   9 SCond
569 15   1 Cond ref
570 18     0
571 20   4 Alt
572 24  13 KetRmax
573 28  24 Ket
574 32  32 Ket
575 36     End
576------------------------------------------------------------------
577
578/[a]/
579Memory allocation (code space): 11
580------------------------------------------------------------------
581  0   6 Bra
582  4     a
583  6   6 Ket
584 10     End
585------------------------------------------------------------------
586
587/[a]/utf
588Memory allocation (code space): 11
589------------------------------------------------------------------
590  0   6 Bra
591  4     a
592  6   6 Ket
593 10     End
594------------------------------------------------------------------
595
596/[\xaa]/
597Memory allocation (code space): 11
598------------------------------------------------------------------
599  0   6 Bra
600  4     \x{aa}
601  6   6 Ket
602 10     End
603------------------------------------------------------------------
604
605/[\xaa]/utf
606Memory allocation (code space): 12
607------------------------------------------------------------------
608  0   7 Bra
609  4     \x{aa}
610  7   7 Ket
611 11     End
612------------------------------------------------------------------
613
614/[^a]/
615Memory allocation (code space): 11
616------------------------------------------------------------------
617  0   6 Bra
618  4     [^a]
619  6   6 Ket
620 10     End
621------------------------------------------------------------------
622
623/[^a]/utf
624Memory allocation (code space): 11
625------------------------------------------------------------------
626  0   6 Bra
627  4     [^a]
628  6   6 Ket
629 10     End
630------------------------------------------------------------------
631
632/[^\xaa]/
633Memory allocation (code space): 11
634------------------------------------------------------------------
635  0   6 Bra
636  4     [^\x{aa}]
637  6   6 Ket
638 10     End
639------------------------------------------------------------------
640
641/[^\xaa]/utf
642Memory allocation (code space): 12
643------------------------------------------------------------------
644  0   7 Bra
645  4     [^\x{aa}]
646  7   7 Ket
647 11     End
648------------------------------------------------------------------
649
650#pattern -memory
651
652/[^\d]/utf,ucp
653------------------------------------------------------------------
654  0  13 Bra
655  4     [^\p{Nd}]
656 13  13 Ket
657 17     End
658------------------------------------------------------------------
659
660/[[:^alpha:][:^cntrl:]]+/utf,ucp
661------------------------------------------------------------------
662  0  17 Bra
663  4     [\P{L}\P{Cc}]++
664 17  17 Ket
665 21     End
666------------------------------------------------------------------
667
668/[[:^cntrl:][:^alpha:]]+/utf,ucp
669------------------------------------------------------------------
670  0  17 Bra
671  4     [\P{Cc}\P{L}]++
672 17  17 Ket
673 21     End
674------------------------------------------------------------------
675
676/[[:alpha:]]+/utf,ucp
677------------------------------------------------------------------
678  0  14 Bra
679  4     [\p{L}]++
680 14  14 Ket
681 18     End
682------------------------------------------------------------------
683
684/[[:^alpha:]\S]+/utf,ucp
685------------------------------------------------------------------
686  0  17 Bra
687  4     [\P{L}\P{Xsp}]++
688 17  17 Ket
689 21     End
690------------------------------------------------------------------
691
692/abc(d|e)(*THEN)x(123(*THEN)4|567(b|q)(*THEN)xx)/
693------------------------------------------------------------------
694  0  83 Bra
695  4     abc
696 10   8 CBra 1
697 16     d
698 18   6 Alt
699 22     e
700 24  14 Ket
701 28     *THEN
702 29     x
703 31  15 CBra 2
704 37     123
705 43     *THEN
706 44     4
707 46  33 Alt
708 50     567
709 56   8 CBra 3
710 62     b
711 64   6 Alt
712 68     q
713 70  14 Ket
714 74     *THEN
715 75     xx
716 79  48 Ket
717 83  83 Ket
718 87     End
719------------------------------------------------------------------
720
721/(((a\2)|(a*)\g<-1>))*a?/
722------------------------------------------------------------------
723  0  70 Bra
724  4     Brazero
725  5  59 SCBra 1
726 11  49 Once
727 15  21 CBra 2
728 21  11 CBra 3
729 27     a
730 29     \2
731 32  11 Ket
732 36  20 Alt
733 40   8 CBra 4
734 46     a*
735 48   8 Ket
736 52  40 Recurse
737 56  41 Ket
738 60  49 Ket
739 64  59 KetRmax
740 68     a?+
741 70  70 Ket
742 74     End
743------------------------------------------------------------------
744
745/((?+1)(\1))/
746------------------------------------------------------------------
747  0  39 Bra
748  4  31 Once
749  8  23 CBra 1
750 14  18 Recurse
751 18   9 CBra 2
752 24     \1
753 27   9 Ket
754 31  23 Ket
755 35  31 Ket
756 39  39 Ket
757 43     End
758------------------------------------------------------------------
759
760"(?1)(?#?'){2}(a)"
761------------------------------------------------------------------
762  0  40 Bra
763  4   8 Once
764  8  28 Recurse
765 12   8 Ket
766 16   8 Once
767 20  28 Recurse
768 24   8 Ket
769 28   8 CBra 1
770 34     a
771 36   8 Ket
772 40  40 Ket
773 44     End
774------------------------------------------------------------------
775
776/.((?2)(?R)|\1|$)()/
777------------------------------------------------------------------
778  0  53 Bra
779  4     Any
780  5  34 Once
781  9  14 CBra 1
782 15  43 Recurse
783 19   0 Recurse
784 23   7 Alt
785 27     \1
786 30   5 Alt
787 34     $
788 35  26 Ket
789 39  34 Ket
790 43   6 CBra 2
791 49   6 Ket
792 53  53 Ket
793 57     End
794------------------------------------------------------------------
795
796/.((?3)(?R)()(?2)|\1|$)()/
797------------------------------------------------------------------
798  0  67 Bra
799  4     Any
800  5  48 Once
801  9  28 CBra 1
802 15  57 Recurse
803 19   0 Recurse
804 23   6 CBra 2
805 29   6 Ket
806 33  23 Recurse
807 37   7 Alt
808 41     \1
809 44   5 Alt
810 48     $
811 49  40 Ket
812 53  48 Ket
813 57   6 CBra 3
814 63   6 Ket
815 67  67 Ket
816 71     End
817------------------------------------------------------------------
818
819/(?1)()((((((\1++))\x85)+)|))/
820------------------------------------------------------------------
821  0  96 Bra
822  4   8 Recurse
823  8   6 CBra 1
824 14   6 Ket
825 18  74 CBra 2
826 24  60 CBra 3
827 30  50 CBra 4
828 36  40 CBra 5
829 42  28 CBra 6
830 48  18 CBra 7
831 54   8 Once
832 58     \1+
833 62   8 Ket
834 66  18 Ket
835 70  28 Ket
836 74     \x{85}
837 76  40 KetRmax
838 80  50 Ket
839 84   4 Alt
840 88  64 Ket
841 92  74 Ket
842 96  96 Ket
843100     End
844------------------------------------------------------------------
845
846# Check the absolute limit on nesting (?| etc. This varies with code unit
847# width because the workspace is a different number of bytes. It will fail
848# with link size 2 in 8-bit and 16-bit but not in 32-bit.
849
850/(?|(?|(?J:(?|(?x:(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|
851)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
852/parens_nest_limit=1000,-fullbincode
853
854# Use "expand" to create some very long patterns with nested parentheses, in
855# order to test workspace overflow. Again, this varies with code unit width,
856# and even with it fails in two modes, the error offset differs. It also varies
857# with link size - hence multiple tests with different values.
858
859/(?'ABC'\[[bar](]{105}*THEN:\[A]{255}\[)]{106}/expand,-fullbincode
860
861/(?'ABC'\[[bar](]{106}*THEN:\[A]{255}\[)]{107}/expand,-fullbincode
862
863/(?'ABC'\[[bar](]{159}*THEN:\[A]{255}\[)]{160}/expand,-fullbincode
864Failed: error 186 at offset 936: regular expression is too complicated
865
866/(?'ABC'\[[bar](]{199}*THEN:\[A]{255}\[)]{200}/expand,-fullbincode
867Failed: error 186 at offset 936: regular expression is too complicated
868
869/(?'ABC'\[[bar](]{299}*THEN:\[A]{255}\[)]{300}/expand,-fullbincode
870Failed: error 186 at offset 936: regular expression is too complicated
871
872/(?(1)(?1)){8,}+()/debug
873------------------------------------------------------------------
874  0 150 Bra
875  4 132 Once
876  8  11 Cond
877 12   1 Cond ref
878 15 140 Recurse
879 19  11 Ket
880 23  11 Cond
881 27   1 Cond ref
882 30 140 Recurse
883 34  11 Ket
884 38  11 Cond
885 42   1 Cond ref
886 45 140 Recurse
887 49  11 Ket
888 53  11 Cond
889 57   1 Cond ref
890 60 140 Recurse
891 64  11 Ket
892 68  11 Cond
893 72   1 Cond ref
894 75 140 Recurse
895 79  11 Ket
896 83  11 Cond
897 87   1 Cond ref
898 90 140 Recurse
899 94  11 Ket
900 98  11 Cond
901102   1 Cond ref
902105 140 Recurse
903109  11 Ket
904113  19 SBraPos
905117  11 SCond
906121   1 Cond ref
907124 140 Recurse
908128  11 Ket
909132  19 KetRpos
910136 132 Ket
911140   6 CBra 1
912146   6 Ket
913150 150 Ket
914154     End
915------------------------------------------------------------------
916Capturing subpattern count = 1
917Max back reference = 1
918May match empty string
919Subject length lower bound = 0
920    abcd
921 0:
922 1:
923
924/(?(1)|a(?1)b){2,}+()/debug
925------------------------------------------------------------------
926  0  76 Bra
927  4  58 Once
928  8   7 Cond
929 12   1 Cond ref
930 15  12 Alt
931 19     a
932 21  66 Recurse
933 25     b
934 27  19 Ket
935 31  27 SBraPos
936 35   7 SCond
937 39   1 Cond ref
938 42  12 Alt
939 46     a
940 48  66 Recurse
941 52     b
942 54  19 Ket
943 58  27 KetRpos
944 62  58 Ket
945 66   6 CBra 1
946 72   6 Ket
947 76  76 Ket
948 80     End
949------------------------------------------------------------------
950Capturing subpattern count = 1
951Max back reference = 1
952May match empty string
953Subject length lower bound = 0
954    abcde
955No match
956
957/((?1)(?2)(?3)(?4)(?5)(?6)(?7)(?8)(?9)(?9)(?8)(?7)(?6)(?5)(?4)(?3)(?2)(?1)(?0)){2,}()()()()()()()()()/debug
958------------------------------------------------------------------
959  0 266 Bra
960  4  82 CBra 1
961 10   4 Recurse
962 14 176 Recurse
963 18 186 Recurse
964 22 196 Recurse
965 26 206 Recurse
966 30 216 Recurse
967 34 226 Recurse
968 38 236 Recurse
969 42 246 Recurse
970 46 246 Recurse
971 50 236 Recurse
972 54 226 Recurse
973 58 216 Recurse
974 62 206 Recurse
975 66 196 Recurse
976 70 186 Recurse
977 74 176 Recurse
978 78   4 Recurse
979 82   0 Recurse
980 86  82 Ket
981 90  82 SCBra 1
982 96   4 Recurse
983100 176 Recurse
984104 186 Recurse
985108 196 Recurse
986112 206 Recurse
987116 216 Recurse
988120 226 Recurse
989124 236 Recurse
990128 246 Recurse
991132 246 Recurse
992136 236 Recurse
993140 226 Recurse
994144 216 Recurse
995148 206 Recurse
996152 196 Recurse
997156 186 Recurse
998160 176 Recurse
999164   4 Recurse
1000168   0 Recurse
1001172  82 KetRmax
1002176   6 CBra 2
1003182   6 Ket
1004186   6 CBra 3
1005192   6 Ket
1006196   6 CBra 4
1007202   6 Ket
1008206   6 CBra 5
1009212   6 Ket
1010216   6 CBra 6
1011222   6 Ket
1012226   6 CBra 7
1013232   6 Ket
1014236   6 CBra 8
1015242   6 Ket
1016246   6 CBra 9
1017252   6 Ket
1018256   6 CBra 10
1019262   6 Ket
1020266 266 Ket
1021270     End
1022------------------------------------------------------------------
1023Capturing subpattern count = 10
1024May match empty string
1025Subject length lower bound = 0
1026
1027/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/
1028Failed: error 114 at offset 509: missing closing parenthesis
1029
1030/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/-fullbincode
1031
1032# End of testinput8
1033