blob: 80ee1c99c404ad2c88e8ad5e755e4b3f06da530c [file] [log] [blame]
Elliott Hughes653c2102019-01-09 15:41:36 -08001# 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): 32
14------------------------------------------------------------------
15 0 12 Bra
16 3 6 CBra 1
17 7 /i b
18 9 6 Ket
19 12 12 Ket
20 15 End
21------------------------------------------------------------------
22
23/(?s)(.*X|^B)/
24Memory allocation (code space): 48
25------------------------------------------------------------------
26 0 20 Bra
27 3 8 CBra 1
28 7 AllAny*
29 9 X
30 11 6 Alt
31 14 ^
32 15 B
33 17 14 Ket
34 20 20 Ket
35 23 End
36------------------------------------------------------------------
37
38/(?s:.*X|^B)/
39Memory allocation (code space): 46
40------------------------------------------------------------------
41 0 19 Bra
42 3 7 Bra
43 6 AllAny*
44 8 X
45 10 6 Alt
46 13 ^
47 14 B
48 16 13 Ket
49 19 19 Ket
50 22 End
51------------------------------------------------------------------
52
53/^[[:alnum:]]/
54Memory allocation (code space): 50
55------------------------------------------------------------------
56 0 21 Bra
57 3 ^
58 4 [0-9A-Za-z]
59 21 21 Ket
60 24 End
61------------------------------------------------------------------
62
63/#/Ix
64Memory allocation (code space): 14
65------------------------------------------------------------------
66 0 3 Bra
67 3 3 Ket
68 6 End
69------------------------------------------------------------------
Elliott Hughes0c26e192019-08-07 12:24:46 -070070Capture group count = 0
Elliott Hughes653c2102019-01-09 15:41:36 -080071May match empty string
72Options: extended
73Subject length lower bound = 0
74
75/a#/Ix
76Memory allocation (code space): 18
77------------------------------------------------------------------
78 0 5 Bra
79 3 a
80 5 5 Ket
81 8 End
82------------------------------------------------------------------
Elliott Hughes0c26e192019-08-07 12:24:46 -070083Capture group count = 0
Elliott Hughes653c2102019-01-09 15:41:36 -080084Options: extended
85First code unit = 'a'
86Subject length lower bound = 1
87
88/x?+/
89Memory allocation (code space): 18
90------------------------------------------------------------------
91 0 5 Bra
92 3 x?+
93 5 5 Ket
94 8 End
95------------------------------------------------------------------
96
97/x++/
98Memory allocation (code space): 18
99------------------------------------------------------------------
100 0 5 Bra
101 3 x++
102 5 5 Ket
103 8 End
104------------------------------------------------------------------
105
106/x{1,3}+/
107Memory allocation (code space): 24
108------------------------------------------------------------------
109 0 8 Bra
110 3 x
111 5 x{0,2}+
112 8 8 Ket
113 11 End
114------------------------------------------------------------------
115
116/(x)*+/
117Memory allocation (code space): 34
118------------------------------------------------------------------
119 0 13 Bra
120 3 Braposzero
121 4 6 CBraPos 1
122 8 x
123 10 6 KetRpos
124 13 13 Ket
125 16 End
126------------------------------------------------------------------
127
128/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/
129Memory allocation (code space): 166
130------------------------------------------------------------------
131 0 79 Bra
132 3 ^
133 4 72 CBra 1
134 8 6 CBra 2
135 12 a+
136 14 6 Ket
137 17 22 CBra 3
138 21 [ab]+?
139 39 22 Ket
140 42 22 CBra 4
141 46 [bc]+
142 64 22 Ket
143 67 6 CBra 5
144 71 \w*+
145 73 6 Ket
146 76 72 Ket
147 79 79 Ket
148 82 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): 1652
153------------------------------------------------------------------
154 0 822 Bra
155 3 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
156821 \b
157822 822 Ket
158825 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): 1632
163------------------------------------------------------------------
164 0 812 Bra
165 3 $<.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
166811 \b
167812 812 Ket
168815 End
169------------------------------------------------------------------
170
171/(a(?1)b)/
172Memory allocation (code space): 42
173------------------------------------------------------------------
174 0 17 Bra
175 3 11 CBra 1
176 7 a
177 9 3 Recurse
178 12 b
179 14 11 Ket
180 17 17 Ket
181 20 End
182------------------------------------------------------------------
183
184/(a(?1)+b)/
185Memory allocation (code space): 54
186------------------------------------------------------------------
187 0 23 Bra
188 3 17 CBra 1
189 7 a
190 9 6 SBra
191 12 3 Recurse
192 15 6 KetRmax
193 18 b
194 20 17 Ket
195 23 23 Ket
196 26 End
197------------------------------------------------------------------
198
199/a(?P<name1>b|c)d(?P<longername2>e)/
200Memory allocation (code space): 68
201------------------------------------------------------------------
202 0 30 Bra
203 3 a
204 5 6 CBra 1
205 9 b
206 11 5 Alt
207 14 c
208 16 11 Ket
209 19 d
210 21 6 CBra 2
211 25 e
212 27 6 Ket
213 30 30 Ket
214 33 End
215------------------------------------------------------------------
216
217/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/
218Memory allocation (code space): 84
219------------------------------------------------------------------
220 0 38 Bra
221 3 23 Bra
222 6 a
223 8 15 CBra 1
224 12 c
225 14 6 CBra 2
226 18 d
227 20 6 Ket
228 23 15 Ket
229 26 23 Ket
230 29 6 CBra 3
231 33 a
232 35 6 Ket
233 38 38 Ket
234 41 End
235------------------------------------------------------------------
236
237/(?P<a>a)...(?P=a)bbb(?P>a)d/
238Memory allocation (code space): 64
239------------------------------------------------------------------
240 0 28 Bra
241 3 6 CBra 1
242 7 a
243 9 6 Ket
244 12 Any
245 13 Any
246 14 Any
247 15 \1
248 17 bbb
249 23 3 Recurse
250 26 d
251 28 28 Ket
252 31 End
253------------------------------------------------------------------
254
255/abc(?C255)de(?C)f/
256Memory allocation (code space): 62
257------------------------------------------------------------------
258 0 27 Bra
259 3 abc
260 9 Callout 255 10 1
261 15 de
262 19 Callout 0 16 1
263 25 f
264 27 27 Ket
265 30 End
266------------------------------------------------------------------
267
268/abcde/auto_callout
269Memory allocation (code space): 106
270------------------------------------------------------------------
271 0 49 Bra
272 3 Callout 255 0 1
273 9 a
274 11 Callout 255 1 1
275 17 b
276 19 Callout 255 2 1
277 25 c
278 27 Callout 255 3 1
279 33 d
280 35 Callout 255 4 1
281 41 e
282 43 Callout 255 5 0
283 49 49 Ket
284 52 End
285------------------------------------------------------------------
286
287/\x{100}/utf
288Memory allocation (code space): 18
289------------------------------------------------------------------
290 0 5 Bra
291 3 \x{100}
292 5 5 Ket
293 8 End
294------------------------------------------------------------------
295
296/\x{1000}/utf
297Memory allocation (code space): 18
298------------------------------------------------------------------
299 0 5 Bra
300 3 \x{1000}
301 5 5 Ket
302 8 End
303------------------------------------------------------------------
304
305/\x{10000}/utf
306Memory allocation (code space): 20
307------------------------------------------------------------------
308 0 6 Bra
309 3 \x{10000}
310 6 6 Ket
311 9 End
312------------------------------------------------------------------
313
314/\x{100000}/utf
315Memory allocation (code space): 20
316------------------------------------------------------------------
317 0 6 Bra
318 3 \x{100000}
319 6 6 Ket
320 9 End
321------------------------------------------------------------------
322
323/\x{10ffff}/utf
324Memory allocation (code space): 20
325------------------------------------------------------------------
326 0 6 Bra
327 3 \x{10ffff}
328 6 6 Ket
329 9 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): 18
337------------------------------------------------------------------
338 0 5 Bra
339 3 \x{ff}
340 5 5 Ket
341 8 End
342------------------------------------------------------------------
343
344/[\x{100}]/utf
345Memory allocation (code space): 18
346------------------------------------------------------------------
347 0 5 Bra
348 3 \x{100}
349 5 5 Ket
350 8 End
351------------------------------------------------------------------
352
353/\x80/utf
354Memory allocation (code space): 18
355------------------------------------------------------------------
356 0 5 Bra
357 3 \x{80}
358 5 5 Ket
359 8 End
360------------------------------------------------------------------
361
362/\xff/utf
363Memory allocation (code space): 18
364------------------------------------------------------------------
365 0 5 Bra
366 3 \x{ff}
367 5 5 Ket
368 8 End
369------------------------------------------------------------------
370
371/\x{0041}\x{2262}\x{0391}\x{002e}/I,utf
372Memory allocation (code space): 30
373------------------------------------------------------------------
374 0 11 Bra
375 3 A\x{2262}\x{391}.
376 11 11 Ket
377 14 End
378------------------------------------------------------------------
Elliott Hughes0c26e192019-08-07 12:24:46 -0700379Capture group count = 0
Elliott Hughes653c2102019-01-09 15:41:36 -0800380Options: 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): 26
387------------------------------------------------------------------
388 0 9 Bra
389 3 \x{d55c}\x{ad6d}\x{c5b4}
390 9 9 Ket
391 12 End
392------------------------------------------------------------------
Elliott Hughes0c26e192019-08-07 12:24:46 -0700393Capture group count = 0
Elliott Hughes653c2102019-01-09 15:41:36 -0800394Options: utf
395First code unit = \x{d55c}
396Last code unit = \x{c5b4}
397Subject length lower bound = 3
398
399/\x{65e5}\x{672c}\x{8a9e}/I,utf
400Memory allocation (code space): 26
401------------------------------------------------------------------
402 0 9 Bra
403 3 \x{65e5}\x{672c}\x{8a9e}
404 9 9 Ket
405 12 End
406------------------------------------------------------------------
Elliott Hughes0c26e192019-08-07 12:24:46 -0700407Capture group count = 0
Elliott Hughes653c2102019-01-09 15:41:36 -0800408Options: utf
409First code unit = \x{65e5}
410Last code unit = \x{8a9e}
411Subject length lower bound = 3
412
413/[\x{100}]/utf
414Memory allocation (code space): 18
415------------------------------------------------------------------
416 0 5 Bra
417 3 \x{100}
418 5 5 Ket
419 8 End
420------------------------------------------------------------------
421
422/[Z\x{100}]/utf
423Memory allocation (code space): 60
424------------------------------------------------------------------
425 0 26 Bra
426 3 [Z\x{100}]
427 26 26 Ket
428 29 End
429------------------------------------------------------------------
430
431/^[\x{100}\E-\Q\E\x{150}]/utf
432Memory allocation (code space): 32
433------------------------------------------------------------------
434 0 12 Bra
435 3 ^
436 4 [\x{100}-\x{150}]
437 12 12 Ket
438 15 End
439------------------------------------------------------------------
440
441/^[\QĀ\E-\QŐ\E]/utf
442Memory allocation (code space): 32
443------------------------------------------------------------------
444 0 12 Bra
445 3 ^
446 4 [\x{100}-\x{150}]
447 12 12 Ket
448 15 End
449------------------------------------------------------------------
450
451/^[\QĀ\E-\QŐ\E/utf
452Failed: error 106 at offset 13: missing terminating ] for character class
453
454/[\p{L}]/
455Memory allocation (code space): 30
456------------------------------------------------------------------
457 0 11 Bra
458 3 [\p{L}]
459 11 11 Ket
460 14 End
461------------------------------------------------------------------
462
463/[\p{^L}]/
464Memory allocation (code space): 30
465------------------------------------------------------------------
466 0 11 Bra
467 3 [\P{L}]
468 11 11 Ket
469 14 End
470------------------------------------------------------------------
471
472/[\P{L}]/
473Memory allocation (code space): 30
474------------------------------------------------------------------
475 0 11 Bra
476 3 [\P{L}]
477 11 11 Ket
478 14 End
479------------------------------------------------------------------
480
481/[\P{^L}]/
482Memory allocation (code space): 30
483------------------------------------------------------------------
484 0 11 Bra
485 3 [\p{L}]
486 11 11 Ket
487 14 End
488------------------------------------------------------------------
489
490/[abc\p{L}\x{0660}]/utf
491Memory allocation (code space): 66
492------------------------------------------------------------------
493 0 29 Bra
494 3 [a-c\p{L}\x{660}]
495 29 29 Ket
496 32 End
497------------------------------------------------------------------
498
499/[\p{Nd}]/utf
500Memory allocation (code space): 30
501------------------------------------------------------------------
502 0 11 Bra
503 3 [\p{Nd}]
504 11 11 Ket
505 14 End
506------------------------------------------------------------------
507
508/[\p{Nd}+-]+/utf
509Memory allocation (code space): 64
510------------------------------------------------------------------
511 0 28 Bra
512 3 [+\-\p{Nd}]++
513 28 28 Ket
514 31 End
515------------------------------------------------------------------
516
517/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
518Memory allocation (code space): 36
519------------------------------------------------------------------
520 0 14 Bra
521 3 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0}
522 14 14 Ket
523 17 End
524------------------------------------------------------------------
525
526/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
527Memory allocation (code space): 36
528------------------------------------------------------------------
529 0 14 Bra
530 3 A\x{391}\x{10427}\x{ff3a}\x{1fb0}
531 14 14 Ket
532 17 End
533------------------------------------------------------------------
534
535/[\x{105}-\x{109}]/i,utf
536Memory allocation (code space): 30
537------------------------------------------------------------------
538 0 11 Bra
539 3 [\x{104}-\x{109}]
540 11 11 Ket
541 14 End
542------------------------------------------------------------------
543
544/( ( (?(1)0|) )* )/x
545Memory allocation (code space): 70
546------------------------------------------------------------------
547 0 31 Bra
548 3 25 CBra 1
549 7 Brazero
550 8 17 SCBra 2
551 12 7 Cond
552 15 1 Cond ref
553 17 0
554 19 3 Alt
555 22 10 Ket
556 25 17 KetRmax
557 28 25 Ket
558 31 31 Ket
559 34 End
560------------------------------------------------------------------
561
562/( (?(1)0|)* )/x
563Memory allocation (code space): 56
564------------------------------------------------------------------
565 0 24 Bra
566 3 18 CBra 1
567 7 Brazero
568 8 7 SCond
569 11 1 Cond ref
570 13 0
571 15 3 Alt
572 18 10 KetRmax
573 21 18 Ket
574 24 24 Ket
575 27 End
576------------------------------------------------------------------
577
578/[a]/
579Memory allocation (code space): 18
580------------------------------------------------------------------
581 0 5 Bra
582 3 a
583 5 5 Ket
584 8 End
585------------------------------------------------------------------
586
587/[a]/utf
588Memory allocation (code space): 18
589------------------------------------------------------------------
590 0 5 Bra
591 3 a
592 5 5 Ket
593 8 End
594------------------------------------------------------------------
595
596/[\xaa]/
597Memory allocation (code space): 18
598------------------------------------------------------------------
599 0 5 Bra
600 3 \x{aa}
601 5 5 Ket
602 8 End
603------------------------------------------------------------------
604
605/[\xaa]/utf
606Memory allocation (code space): 18
607------------------------------------------------------------------
608 0 5 Bra
609 3 \x{aa}
610 5 5 Ket
611 8 End
612------------------------------------------------------------------
613
614/[^a]/
615Memory allocation (code space): 18
616------------------------------------------------------------------
617 0 5 Bra
618 3 [^a]
619 5 5 Ket
620 8 End
621------------------------------------------------------------------
622
623/[^a]/utf
624Memory allocation (code space): 18
625------------------------------------------------------------------
626 0 5 Bra
627 3 [^a]
628 5 5 Ket
629 8 End
630------------------------------------------------------------------
631
632/[^\xaa]/
633Memory allocation (code space): 18
634------------------------------------------------------------------
635 0 5 Bra
636 3 [^\x{aa}]
637 5 5 Ket
638 8 End
639------------------------------------------------------------------
640
641/[^\xaa]/utf
642Memory allocation (code space): 18
643------------------------------------------------------------------
644 0 5 Bra
645 3 [^\x{aa}]
646 5 5 Ket
647 8 End
648------------------------------------------------------------------
649
650#pattern -memory
651
652/[^\d]/utf,ucp
653------------------------------------------------------------------
654 0 11 Bra
655 3 [^\p{Nd}]
656 11 11 Ket
657 14 End
658------------------------------------------------------------------
659
660/[[:^alpha:][:^cntrl:]]+/utf,ucp
661------------------------------------------------------------------
662 0 15 Bra
663 3 [\P{L}\P{Cc}]++
664 15 15 Ket
665 18 End
666------------------------------------------------------------------
667
668/[[:^cntrl:][:^alpha:]]+/utf,ucp
669------------------------------------------------------------------
670 0 15 Bra
671 3 [\P{Cc}\P{L}]++
672 15 15 Ket
673 18 End
674------------------------------------------------------------------
675
676/[[:alpha:]]+/utf,ucp
677------------------------------------------------------------------
678 0 12 Bra
679 3 [\p{L}]++
680 12 12 Ket
681 15 End
682------------------------------------------------------------------
683
684/[[:^alpha:]\S]+/utf,ucp
685------------------------------------------------------------------
686 0 15 Bra
687 3 [\P{L}\P{Xsp}]++
688 15 15 Ket
689 18 End
690------------------------------------------------------------------
691
692/abc(d|e)(*THEN)x(123(*THEN)4|567(b|q)(*THEN)xx)/
693------------------------------------------------------------------
694 0 70 Bra
695 3 abc
696 9 6 CBra 1
697 13 d
698 15 5 Alt
699 18 e
700 20 11 Ket
701 23 *THEN
702 24 x
703 26 13 CBra 2
704 30 123
705 36 *THEN
706 37 4
707 39 28 Alt
708 42 567
709 48 6 CBra 3
710 52 b
711 54 5 Alt
712 57 q
713 59 11 Ket
714 62 *THEN
715 63 xx
716 67 41 Ket
717 70 70 Ket
718 73 End
719------------------------------------------------------------------
720
721/(((a\2)|(a*)\g<-1>))*a?/
722------------------------------------------------------------------
Elliott Hughes2dbd7d22020-06-03 14:32:37 -0700723 0 46 Bra
Elliott Hughes653c2102019-01-09 15:41:36 -0800724 3 Brazero
Elliott Hughes2dbd7d22020-06-03 14:32:37 -0700725 4 37 SCBra 1
726 8 15 CBra 2
727 12 8 CBra 3
728 16 a
729 18 \2
730 20 8 Ket
731 23 15 Alt
732 26 6 CBra 4
733 30 a*
734 32 6 Ket
735 35 26 Recurse
736 38 30 Ket
737 41 37 KetRmax
738 44 a?+
739 46 46 Ket
740 49 End
Elliott Hughes653c2102019-01-09 15:41:36 -0800741------------------------------------------------------------------
742
743/((?+1)(\1))/
744------------------------------------------------------------------
Elliott Hughes2dbd7d22020-06-03 14:32:37 -0700745 0 22 Bra
746 3 16 CBra 1
747 7 10 Recurse
748 10 6 CBra 2
749 14 \1
750 16 6 Ket
751 19 16 Ket
752 22 22 Ket
753 25 End
Elliott Hughes653c2102019-01-09 15:41:36 -0800754------------------------------------------------------------------
755
756"(?1)(?#?'){2}(a)"
757------------------------------------------------------------------
758 0 18 Bra
759 3 9 Recurse
760 6 9 Recurse
761 9 6 CBra 1
762 13 a
763 15 6 Ket
764 18 18 Ket
765 21 End
766------------------------------------------------------------------
767
768/.((?2)(?R)|\1|$)()/
769------------------------------------------------------------------
Elliott Hughes2dbd7d22020-06-03 14:32:37 -0700770 0 33 Bra
Elliott Hughes653c2102019-01-09 15:41:36 -0800771 3 Any
Elliott Hughes2dbd7d22020-06-03 14:32:37 -0700772 4 10 CBra 1
773 8 26 Recurse
774 11 0 Recurse
775 14 5 Alt
776 17 \1
777 19 4 Alt
778 22 $
779 23 19 Ket
780 26 4 CBra 2
781 30 4 Ket
782 33 33 Ket
783 36 End
Elliott Hughes653c2102019-01-09 15:41:36 -0800784------------------------------------------------------------------
785
786/.((?3)(?R)()(?2)|\1|$)()/
787------------------------------------------------------------------
Elliott Hughes2dbd7d22020-06-03 14:32:37 -0700788 0 43 Bra
Elliott Hughes653c2102019-01-09 15:41:36 -0800789 3 Any
Elliott Hughes2dbd7d22020-06-03 14:32:37 -0700790 4 20 CBra 1
791 8 36 Recurse
792 11 0 Recurse
793 14 4 CBra 2
794 18 4 Ket
795 21 14 Recurse
796 24 5 Alt
797 27 \1
798 29 4 Alt
799 32 $
800 33 29 Ket
801 36 4 CBra 3
802 40 4 Ket
803 43 43 Ket
804 46 End
Elliott Hughes653c2102019-01-09 15:41:36 -0800805------------------------------------------------------------------
806
807/(?1)()((((((\1++))\x85)+)|))/
808------------------------------------------------------------------
809 0 69 Bra
810 3 6 Recurse
811 6 4 CBra 1
812 10 4 Ket
813 13 53 CBra 2
814 17 43 CBra 3
815 21 36 CBra 4
816 25 29 CBra 5
817 29 20 CBra 6
818 33 13 CBra 7
819 37 6 Once
820 40 \1+
821 43 6 Ket
822 46 13 Ket
823 49 20 Ket
824 52 \x{85}
825 54 29 KetRmax
826 57 36 Ket
827 60 3 Alt
828 63 46 Ket
829 66 53 Ket
830 69 69 Ket
831 72 End
832------------------------------------------------------------------
833
834# Check the absolute limit on nesting (?| etc. This varies with code unit
835# width because the workspace is a different number of bytes. It will fail
836# with link size 2 in 8-bit and 16-bit but not in 32-bit.
837
838/(?|(?|(?J:(?|(?x:(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|
839)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
840/parens_nest_limit=1000,-fullbincode
841
842# Use "expand" to create some very long patterns with nested parentheses, in
843# order to test workspace overflow. Again, this varies with code unit width,
844# and even when it fails in two modes, the error offset differs. It also varies
845# with link size - hence multiple tests with different values.
846
847/(?'ABC'\[[bar](]{792}*THEN:\[A]{255}\[)]{793}/expand,-fullbincode,parens_nest_limit=1000
848
849/(?'ABC'\[[bar](]{793}*THEN:\[A]{255}\[)]{794}/expand,-fullbincode,parens_nest_limit=1000
850
851/(?'ABC'\[[bar](]{1793}*THEN:\[A]{255}\[)]{1794}/expand,-fullbincode,parens_nest_limit=2000
852Failed: error 186 at offset 12820: regular expression is too complicated
853
854/(?(1)(?1)){8,}+()/debug
855------------------------------------------------------------------
856 0 110 Bra
857 3 97 Once
858 6 8 Cond
859 9 1 Cond ref
860 11 103 Recurse
861 14 8 Ket
862 17 8 Cond
863 20 1 Cond ref
864 22 103 Recurse
865 25 8 Ket
866 28 8 Cond
867 31 1 Cond ref
868 33 103 Recurse
869 36 8 Ket
870 39 8 Cond
871 42 1 Cond ref
872 44 103 Recurse
873 47 8 Ket
874 50 8 Cond
875 53 1 Cond ref
876 55 103 Recurse
877 58 8 Ket
878 61 8 Cond
879 64 1 Cond ref
880 66 103 Recurse
881 69 8 Ket
882 72 8 Cond
883 75 1 Cond ref
884 77 103 Recurse
885 80 8 Ket
886 83 14 SBraPos
887 86 8 SCond
888 89 1 Cond ref
889 91 103 Recurse
890 94 8 Ket
891 97 14 KetRpos
892100 97 Ket
893103 4 CBra 1
894107 4 Ket
895110 110 Ket
896113 End
897------------------------------------------------------------------
Elliott Hughes0c26e192019-08-07 12:24:46 -0700898Capture group count = 1
Elliott Hughes653c2102019-01-09 15:41:36 -0800899Max back reference = 1
900May match empty string
901Subject length lower bound = 0
902 abcd
903 0:
904 1:
905
906/(?(1)|a(?1)b){2,}+()/debug
907------------------------------------------------------------------
908 0 58 Bra
909 3 45 Once
910 6 5 Cond
911 9 1 Cond ref
912 11 10 Alt
913 14 a
914 16 51 Recurse
915 19 b
916 21 15 Ket
917 24 21 SBraPos
918 27 5 SCond
919 30 1 Cond ref
920 32 10 Alt
921 35 a
922 37 51 Recurse
923 40 b
924 42 15 Ket
925 45 21 KetRpos
926 48 45 Ket
927 51 4 CBra 1
928 55 4 Ket
929 58 58 Ket
930 61 End
931------------------------------------------------------------------
Elliott Hughes0c26e192019-08-07 12:24:46 -0700932Capture group count = 1
Elliott Hughes653c2102019-01-09 15:41:36 -0800933Max back reference = 1
934May match empty string
935Subject length lower bound = 0
936 abcde
937No match
938
939/((?1)(?2)(?3)(?4)(?5)(?6)(?7)(?8)(?9)(?9)(?8)(?7)(?6)(?5)(?4)(?3)(?2)(?1)(?0)){2,}()()()()()()()()()/debug
940------------------------------------------------------------------
941 0 194 Bra
942 3 61 CBra 1
943 7 3 Recurse
944 10 131 Recurse
945 13 138 Recurse
946 16 145 Recurse
947 19 152 Recurse
948 22 159 Recurse
949 25 166 Recurse
950 28 173 Recurse
951 31 180 Recurse
952 34 180 Recurse
953 37 173 Recurse
954 40 166 Recurse
955 43 159 Recurse
956 46 152 Recurse
957 49 145 Recurse
958 52 138 Recurse
959 55 131 Recurse
960 58 3 Recurse
961 61 0 Recurse
962 64 61 Ket
963 67 61 SCBra 1
964 71 3 Recurse
965 74 131 Recurse
966 77 138 Recurse
967 80 145 Recurse
968 83 152 Recurse
969 86 159 Recurse
970 89 166 Recurse
971 92 173 Recurse
972 95 180 Recurse
973 98 180 Recurse
974101 173 Recurse
975104 166 Recurse
976107 159 Recurse
977110 152 Recurse
978113 145 Recurse
979116 138 Recurse
980119 131 Recurse
981122 3 Recurse
982125 0 Recurse
983128 61 KetRmax
984131 4 CBra 2
985135 4 Ket
986138 4 CBra 3
987142 4 Ket
988145 4 CBra 4
989149 4 Ket
990152 4 CBra 5
991156 4 Ket
992159 4 CBra 6
993163 4 Ket
994166 4 CBra 7
995170 4 Ket
996173 4 CBra 8
997177 4 Ket
998180 4 CBra 9
999184 4 Ket
1000187 4 CBra 10
1001191 4 Ket
1002194 194 Ket
1003197 End
1004------------------------------------------------------------------
Elliott Hughes0c26e192019-08-07 12:24:46 -07001005Capture group count = 10
Elliott Hughes653c2102019-01-09 15:41:36 -08001006May match empty string
1007Subject length lower bound = 0
1008
1009/([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)/
1010Failed: error 114 at offset 509: missing closing parenthesis
1011
1012/([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
1013
Elliott Hughes2dbd7d22020-06-03 14:32:37 -07001014#pattern -fullbincode
1015
1016/\[()]{65535}/expand
1017
Elliott Hughes653c2102019-01-09 15:41:36 -08001018# End of testinput8