blob: 8e19908e8b0c0753d635af423c698a6b5e726a16 [file] [log] [blame]
Janis Danisevskis53e448c2016-03-31 13:35:25 +01001# 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): 25
14------------------------------------------------------------------
15 0 19 Bra
16 5 9 CBra 1
17 12 /i b
18 14 9 Ket
19 19 19 Ket
20 24 End
21------------------------------------------------------------------
22
23/(?s)(.*X|^B)/
24Memory allocation (code space): 35
25------------------------------------------------------------------
26 0 29 Bra
27 5 11 CBra 1
28 12 AllAny*
29 14 X
30 16 8 Alt
31 21 ^
32 22 B
33 24 19 Ket
34 29 29 Ket
35 34 End
36------------------------------------------------------------------
37
38/(?s:.*X|^B)/
39Memory allocation (code space): 33
40------------------------------------------------------------------
41 0 27 Bra
42 5 9 Bra
43 10 AllAny*
44 12 X
45 14 8 Alt
46 19 ^
47 20 B
48 22 17 Ket
49 27 27 Ket
50 32 End
51------------------------------------------------------------------
52
53/^[[:alnum:]]/
54Memory allocation (code space): 45
55------------------------------------------------------------------
56 0 39 Bra
57 5 ^
58 6 [0-9A-Za-z]
59 39 39 Ket
60 44 End
61------------------------------------------------------------------
62
63/#/Ix
64Memory allocation (code space): 11
65------------------------------------------------------------------
66 0 5 Bra
67 5 5 Ket
68 10 End
69------------------------------------------------------------------
Elliott Hughes0c26e192019-08-07 12:24:46 -070070Capture group count = 0
Janis Danisevskis53e448c2016-03-31 13:35:25 +010071May match empty string
72Options: extended
73Subject length lower bound = 0
74
75/a#/Ix
76Memory allocation (code space): 13
77------------------------------------------------------------------
78 0 7 Bra
79 5 a
80 7 7 Ket
81 12 End
82------------------------------------------------------------------
Elliott Hughes0c26e192019-08-07 12:24:46 -070083Capture group count = 0
Janis Danisevskis53e448c2016-03-31 13:35:25 +010084Options: extended
85First code unit = 'a'
86Subject length lower bound = 1
87
88/x?+/
89Memory allocation (code space): 13
90------------------------------------------------------------------
91 0 7 Bra
92 5 x?+
93 7 7 Ket
94 12 End
95------------------------------------------------------------------
96
97/x++/
98Memory allocation (code space): 13
99------------------------------------------------------------------
100 0 7 Bra
101 5 x++
102 7 7 Ket
103 12 End
104------------------------------------------------------------------
105
106/x{1,3}+/
107Memory allocation (code space): 17
108------------------------------------------------------------------
109 0 11 Bra
110 5 x
111 7 x{0,2}+
112 11 11 Ket
113 16 End
114------------------------------------------------------------------
115
116/(x)*+/
117Memory allocation (code space): 26
118------------------------------------------------------------------
119 0 20 Bra
120 5 Braposzero
121 6 9 CBraPos 1
122 13 x
123 15 9 KetRpos
124 20 20 Ket
125 25 End
126------------------------------------------------------------------
127
128/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/
129Memory allocation (code space): 144
130------------------------------------------------------------------
131 0 138 Bra
132 5 ^
133 6 127 CBra 1
134 13 9 CBra 2
135 20 a+
136 22 9 Ket
137 27 41 CBra 3
138 34 [ab]+?
139 68 41 Ket
140 73 41 CBra 4
141 80 [bc]+
142114 41 Ket
143119 9 CBra 5
144126 \w*+
145128 9 Ket
146133 127 Ket
147138 138 Ket
148143 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): 830
153------------------------------------------------------------------
154 0 824 Bra
155 5 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
156823 \b
157824 824 Ket
158829 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): 820
163------------------------------------------------------------------
164 0 814 Bra
165 5 $<.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
166813 \b
167814 814 Ket
168819 End
169------------------------------------------------------------------
170
171/(a(?1)b)/
172Memory allocation (code space): 32
173------------------------------------------------------------------
174 0 26 Bra
175 5 16 CBra 1
176 12 a
177 14 5 Recurse
178 19 b
179 21 16 Ket
180 26 26 Ket
181 31 End
182------------------------------------------------------------------
183
184/(a(?1)+b)/
185Memory allocation (code space): 42
186------------------------------------------------------------------
187 0 36 Bra
188 5 26 CBra 1
189 12 a
Elliott Hughes9bc971b2018-07-27 13:23:14 -0700190 14 10 SBra
Janis Danisevskis53e448c2016-03-31 13:35:25 +0100191 19 5 Recurse
192 24 10 KetRmax
193 29 b
194 31 26 Ket
195 36 36 Ket
196 41 End
197------------------------------------------------------------------
198
199/a(?P<name1>b|c)d(?P<longername2>e)/
200Memory allocation (code space): 50
201------------------------------------------------------------------
202 0 44 Bra
203 5 a
204 7 9 CBra 1
205 14 b
206 16 7 Alt
207 21 c
208 23 16 Ket
209 28 d
210 30 9 CBra 2
211 37 e
212 39 9 Ket
213 44 44 Ket
214 49 End
215------------------------------------------------------------------
216
217/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/
218Memory allocation (code space): 65
219------------------------------------------------------------------
220 0 59 Bra
221 5 35 Bra
222 10 a
223 12 23 CBra 1
224 19 c
225 21 9 CBra 2
226 28 d
227 30 9 Ket
228 35 23 Ket
229 40 35 Ket
230 45 9 CBra 3
231 52 a
232 54 9 Ket
233 59 59 Ket
234 64 End
235------------------------------------------------------------------
236
237/(?P<a>a)...(?P=a)bbb(?P>a)d/
238Memory allocation (code space): 44
239------------------------------------------------------------------
240 0 38 Bra
241 5 9 CBra 1
242 12 a
243 14 9 Ket
244 19 Any
245 20 Any
246 21 Any
247 22 \1
248 25 bbb
249 31 5 Recurse
250 36 d
251 38 38 Ket
252 43 End
253------------------------------------------------------------------
254
255/abc(?C255)de(?C)f/
256Memory allocation (code space): 43
257------------------------------------------------------------------
258 0 37 Bra
259 5 abc
260 11 Callout 255 10 1
261 21 de
262 25 Callout 0 16 1
263 35 f
264 37 37 Ket
265 42 End
266------------------------------------------------------------------
267
268/abcde/auto_callout
269Memory allocation (code space): 81
270------------------------------------------------------------------
271 0 75 Bra
272 5 Callout 255 0 1
273 15 a
274 17 Callout 255 1 1
275 27 b
276 29 Callout 255 2 1
277 39 c
278 41 Callout 255 3 1
279 51 d
280 53 Callout 255 4 1
281 63 e
282 65 Callout 255 5 0
283 75 75 Ket
284 80 End
285------------------------------------------------------------------
286
287/\x{100}/utf
288Memory allocation (code space): 14
289------------------------------------------------------------------
290 0 8 Bra
291 5 \x{100}
292 8 8 Ket
293 13 End
294------------------------------------------------------------------
295
296/\x{1000}/utf
297Memory allocation (code space): 15
298------------------------------------------------------------------
299 0 9 Bra
300 5 \x{1000}
301 9 9 Ket
302 14 End
303------------------------------------------------------------------
304
305/\x{10000}/utf
306Memory allocation (code space): 16
307------------------------------------------------------------------
308 0 10 Bra
309 5 \x{10000}
310 10 10 Ket
311 15 End
312------------------------------------------------------------------
313
314/\x{100000}/utf
315Memory allocation (code space): 16
316------------------------------------------------------------------
317 0 10 Bra
318 5 \x{100000}
319 10 10 Ket
320 15 End
321------------------------------------------------------------------
322
323/\x{10ffff}/utf
324Memory allocation (code space): 16
325------------------------------------------------------------------
326 0 10 Bra
327 5 \x{10ffff}
328 10 10 Ket
329 15 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): 14
337------------------------------------------------------------------
338 0 8 Bra
339 5 \x{ff}
340 8 8 Ket
341 13 End
342------------------------------------------------------------------
343
344/[\x{100}]/utf
345Memory allocation (code space): 14
346------------------------------------------------------------------
347 0 8 Bra
348 5 \x{100}
349 8 8 Ket
350 13 End
351------------------------------------------------------------------
352
353/\x80/utf
354Memory allocation (code space): 14
355------------------------------------------------------------------
356 0 8 Bra
357 5 \x{80}
358 8 8 Ket
359 13 End
360------------------------------------------------------------------
361
362/\xff/utf
363Memory allocation (code space): 14
364------------------------------------------------------------------
365 0 8 Bra
366 5 \x{ff}
367 8 8 Ket
368 13 End
369------------------------------------------------------------------
370
371/\x{0041}\x{2262}\x{0391}\x{002e}/I,utf
372Memory allocation (code space): 22
373------------------------------------------------------------------
374 0 16 Bra
375 5 A\x{2262}\x{391}.
376 16 16 Ket
377 21 End
378------------------------------------------------------------------
Elliott Hughes0c26e192019-08-07 12:24:46 -0700379Capture group count = 0
Janis Danisevskis53e448c2016-03-31 13:35:25 +0100380Options: 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): 23
387------------------------------------------------------------------
388 0 17 Bra
389 5 \x{d55c}\x{ad6d}\x{c5b4}
390 17 17 Ket
391 22 End
392------------------------------------------------------------------
Elliott Hughes0c26e192019-08-07 12:24:46 -0700393Capture group count = 0
Janis Danisevskis53e448c2016-03-31 13:35:25 +0100394Options: 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): 23
401------------------------------------------------------------------
402 0 17 Bra
403 5 \x{65e5}\x{672c}\x{8a9e}
404 17 17 Ket
405 22 End
406------------------------------------------------------------------
Elliott Hughes0c26e192019-08-07 12:24:46 -0700407Capture group count = 0
Janis Danisevskis53e448c2016-03-31 13:35:25 +0100408Options: utf
409First code unit = \xe6
410Last code unit = \x9e
411Subject length lower bound = 3
412
413/[\x{100}]/utf
414Memory allocation (code space): 14
415------------------------------------------------------------------
416 0 8 Bra
417 5 \x{100}
418 8 8 Ket
419 13 End
420------------------------------------------------------------------
421
422/[Z\x{100}]/utf
423Memory allocation (code space): 53
424------------------------------------------------------------------
425 0 47 Bra
426 5 [Z\x{100}]
427 47 47 Ket
428 52 End
429------------------------------------------------------------------
430
431/^[\x{100}\E-\Q\E\x{150}]/utf
432Memory allocation (code space): 24
433------------------------------------------------------------------
434 0 18 Bra
435 5 ^
436 6 [\x{100}-\x{150}]
437 18 18 Ket
438 23 End
439------------------------------------------------------------------
440
441/^[\QĀ\E-\QŐ\E]/utf
442Memory allocation (code space): 24
443------------------------------------------------------------------
444 0 18 Bra
445 5 ^
446 6 [\x{100}-\x{150}]
447 18 18 Ket
448 23 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): 21
456------------------------------------------------------------------
457 0 15 Bra
458 5 [\p{L}]
459 15 15 Ket
460 20 End
461------------------------------------------------------------------
462
463/[\p{^L}]/
464Memory allocation (code space): 21
465------------------------------------------------------------------
466 0 15 Bra
467 5 [\P{L}]
468 15 15 Ket
469 20 End
470------------------------------------------------------------------
471
472/[\P{L}]/
473Memory allocation (code space): 21
474------------------------------------------------------------------
475 0 15 Bra
476 5 [\P{L}]
477 15 15 Ket
478 20 End
479------------------------------------------------------------------
480
481/[\P{^L}]/
482Memory allocation (code space): 21
483------------------------------------------------------------------
484 0 15 Bra
485 5 [\p{L}]
486 15 15 Ket
487 20 End
488------------------------------------------------------------------
489
490/[abc\p{L}\x{0660}]/utf
491Memory allocation (code space): 56
492------------------------------------------------------------------
493 0 50 Bra
494 5 [a-c\p{L}\x{660}]
495 50 50 Ket
496 55 End
497------------------------------------------------------------------
498
499/[\p{Nd}]/utf
500Memory allocation (code space): 21
501------------------------------------------------------------------
502 0 15 Bra
503 5 [\p{Nd}]
504 15 15 Ket
505 20 End
506------------------------------------------------------------------
507
508/[\p{Nd}+-]+/utf
509Memory allocation (code space): 54
510------------------------------------------------------------------
511 0 48 Bra
512 5 [+\-\p{Nd}]++
513 48 48 Ket
514 53 End
515------------------------------------------------------------------
516
517/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
518Memory allocation (code space): 29
519------------------------------------------------------------------
520 0 23 Bra
521 5 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0}
522 23 23 Ket
523 28 End
524------------------------------------------------------------------
525
526/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
527Memory allocation (code space): 29
528------------------------------------------------------------------
529 0 23 Bra
530 5 A\x{391}\x{10427}\x{ff3a}\x{1fb0}
531 23 23 Ket
532 28 End
533------------------------------------------------------------------
534
535/[\x{105}-\x{109}]/i,utf
536Memory allocation (code space): 23
537------------------------------------------------------------------
538 0 17 Bra
539 5 [\x{104}-\x{109}]
540 17 17 Ket
541 22 End
542------------------------------------------------------------------
543
544/( ( (?(1)0|) )* )/x
545Memory allocation (code space): 56
546------------------------------------------------------------------
547 0 50 Bra
548 5 40 CBra 1
549 12 Brazero
550 13 27 SCBra 2
551 20 10 Cond
552 25 1 Cond ref
553 28 0
554 30 5 Alt
555 35 15 Ket
556 40 27 KetRmax
557 45 40 Ket
558 50 50 Ket
559 55 End
560------------------------------------------------------------------
561
562/( (?(1)0|)* )/x
563Memory allocation (code space): 44
564------------------------------------------------------------------
565 0 38 Bra
566 5 28 CBra 1
567 12 Brazero
568 13 10 SCond
569 18 1 Cond ref
570 21 0
571 23 5 Alt
572 28 15 KetRmax
573 33 28 Ket
574 38 38 Ket
575 43 End
576------------------------------------------------------------------
577
578/[a]/
579Memory allocation (code space): 13
580------------------------------------------------------------------
581 0 7 Bra
582 5 a
583 7 7 Ket
584 12 End
585------------------------------------------------------------------
586
587/[a]/utf
588Memory allocation (code space): 13
589------------------------------------------------------------------
590 0 7 Bra
591 5 a
592 7 7 Ket
593 12 End
594------------------------------------------------------------------
595
596/[\xaa]/
597Memory allocation (code space): 13
598------------------------------------------------------------------
599 0 7 Bra
600 5 \x{aa}
601 7 7 Ket
602 12 End
603------------------------------------------------------------------
604
605/[\xaa]/utf
606Memory allocation (code space): 14
607------------------------------------------------------------------
608 0 8 Bra
609 5 \x{aa}
610 8 8 Ket
611 13 End
612------------------------------------------------------------------
613
614/[^a]/
615Memory allocation (code space): 13
616------------------------------------------------------------------
617 0 7 Bra
618 5 [^a]
619 7 7 Ket
620 12 End
621------------------------------------------------------------------
622
623/[^a]/utf
624Memory allocation (code space): 13
625------------------------------------------------------------------
626 0 7 Bra
627 5 [^a]
628 7 7 Ket
629 12 End
630------------------------------------------------------------------
631
632/[^\xaa]/
633Memory allocation (code space): 13
634------------------------------------------------------------------
635 0 7 Bra
636 5 [^\x{aa}]
637 7 7 Ket
638 12 End
639------------------------------------------------------------------
640
641/[^\xaa]/utf
642Memory allocation (code space): 14
643------------------------------------------------------------------
644 0 8 Bra
645 5 [^\x{aa}]
646 8 8 Ket
647 13 End
648------------------------------------------------------------------
649
650#pattern -memory
651
652/[^\d]/utf,ucp
653------------------------------------------------------------------
654 0 15 Bra
655 5 [^\p{Nd}]
656 15 15 Ket
657 20 End
658------------------------------------------------------------------
659
660/[[:^alpha:][:^cntrl:]]+/utf,ucp
661------------------------------------------------------------------
662 0 19 Bra
663 5 [\P{L}\P{Cc}]++
664 19 19 Ket
665 24 End
666------------------------------------------------------------------
667
668/[[:^cntrl:][:^alpha:]]+/utf,ucp
669------------------------------------------------------------------
670 0 19 Bra
671 5 [\P{Cc}\P{L}]++
672 19 19 Ket
673 24 End
674------------------------------------------------------------------
675
676/[[:alpha:]]+/utf,ucp
677------------------------------------------------------------------
678 0 16 Bra
679 5 [\p{L}]++
680 16 16 Ket
681 21 End
682------------------------------------------------------------------
683
684/[[:^alpha:]\S]+/utf,ucp
685------------------------------------------------------------------
686 0 19 Bra
687 5 [\P{L}\P{Xsp}]++
688 19 19 Ket
689 24 End
690------------------------------------------------------------------
691
692/abc(d|e)(*THEN)x(123(*THEN)4|567(b|q)(*THEN)xx)/
693------------------------------------------------------------------
694 0 93 Bra
695 5 abc
696 11 9 CBra 1
697 18 d
698 20 7 Alt
699 25 e
700 27 16 Ket
701 32 *THEN
702 33 x
703 35 16 CBra 2
704 42 123
705 48 *THEN
706 49 4
707 51 37 Alt
708 56 567
709 62 9 CBra 3
710 69 b
711 71 7 Alt
712 76 q
713 78 16 Ket
714 83 *THEN
715 84 xx
716 88 53 Ket
717 93 93 Ket
718 98 End
719------------------------------------------------------------------
720
721/(((a\2)|(a*)\g<-1>))*a?/
722------------------------------------------------------------------
Elliott Hughes2dbd7d22020-06-03 14:32:37 -0700723 0 73 Bra
Janis Danisevskis53e448c2016-03-31 13:35:25 +0100724 5 Brazero
Elliott Hughes2dbd7d22020-06-03 14:32:37 -0700725 6 60 SCBra 1
726 13 24 CBra 2
727 20 12 CBra 3
728 27 a
729 29 \2
730 32 12 Ket
731 37 24 Alt
732 42 9 CBra 4
733 49 a*
734 51 9 Ket
735 56 42 Recurse
736 61 48 Ket
737 66 60 KetRmax
738 71 a?+
739 73 73 Ket
740 78 End
Janis Danisevskis53e448c2016-03-31 13:35:25 +0100741------------------------------------------------------------------
742
743/((?+1)(\1))/
744------------------------------------------------------------------
Elliott Hughes2dbd7d22020-06-03 14:32:37 -0700745 0 37 Bra
746 5 27 CBra 1
747 12 17 Recurse
748 17 10 CBra 2
749 24 \1
750 27 10 Ket
751 32 27 Ket
752 37 37 Ket
753 42 End
Janis Danisevskis53e448c2016-03-31 13:35:25 +0100754------------------------------------------------------------------
755
756"(?1)(?#?'){2}(a)"
757------------------------------------------------------------------
Elliott Hughes9bc971b2018-07-27 13:23:14 -0700758 0 29 Bra
759 5 15 Recurse
760 10 15 Recurse
761 15 9 CBra 1
762 22 a
763 24 9 Ket
764 29 29 Ket
765 34 End
Janis Danisevskis53e448c2016-03-31 13:35:25 +0100766------------------------------------------------------------------
767
768/.((?2)(?R)|\1|$)()/
769------------------------------------------------------------------
Elliott Hughes2dbd7d22020-06-03 14:32:37 -0700770 0 54 Bra
Janis Danisevskis53e448c2016-03-31 13:35:25 +0100771 5 Any
Elliott Hughes2dbd7d22020-06-03 14:32:37 -0700772 6 17 CBra 1
773 13 42 Recurse
774 18 0 Recurse
775 23 8 Alt
776 28 \1
777 31 6 Alt
778 36 $
779 37 31 Ket
780 42 7 CBra 2
781 49 7 Ket
782 54 54 Ket
783 59 End
Janis Danisevskis53e448c2016-03-31 13:35:25 +0100784------------------------------------------------------------------
785
786/.((?3)(?R)()(?2)|\1|$)()/
787------------------------------------------------------------------
Elliott Hughes2dbd7d22020-06-03 14:32:37 -0700788 0 71 Bra
Janis Danisevskis53e448c2016-03-31 13:35:25 +0100789 5 Any
Elliott Hughes2dbd7d22020-06-03 14:32:37 -0700790 6 34 CBra 1
791 13 59 Recurse
792 18 0 Recurse
793 23 7 CBra 2
794 30 7 Ket
795 35 23 Recurse
796 40 8 Alt
797 45 \1
798 48 6 Alt
799 53 $
800 54 48 Ket
801 59 7 CBra 3
802 66 7 Ket
803 71 71 Ket
804 76 End
Janis Danisevskis53e448c2016-03-31 13:35:25 +0100805------------------------------------------------------------------
806
807/(?1)()((((((\1++))\x85)+)|))/
808------------------------------------------------------------------
809 0 115 Bra
810 5 10 Recurse
811 10 7 CBra 1
812 17 7 Ket
813 22 88 CBra 2
814 29 71 CBra 3
815 36 59 CBra 4
816 43 47 CBra 5
817 50 33 CBra 6
818 57 21 CBra 7
819 64 9 Once
820 69 \1+
821 73 9 Ket
822 78 21 Ket
823 83 33 Ket
824 88 \x{85}
825 90 47 KetRmax
826 95 59 Ket
827100 5 Alt
828105 76 Ket
829110 88 Ket
830115 115 Ket
831120 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,
Elliott Hughes9bc971b2018-07-27 13:23:14 -0700844# and even when it fails in two modes, the error offset differs. It also varies
Janis Danisevskis53e448c2016-03-31 13:35:25 +0100845# with link size - hence multiple tests with different values.
846
Elliott Hughes9bc971b2018-07-27 13:23:14 -0700847/(?'ABC'\[[bar](]{792}*THEN:\[A]{255}\[)]{793}/expand,-fullbincode,parens_nest_limit=1000
Janis Danisevskis53e448c2016-03-31 13:35:25 +0100848
Elliott Hughes9bc971b2018-07-27 13:23:14 -0700849/(?'ABC'\[[bar](]{793}*THEN:\[A]{255}\[)]{794}/expand,-fullbincode,parens_nest_limit=1000
Janis Danisevskis53e448c2016-03-31 13:35:25 +0100850
Elliott Hughes9bc971b2018-07-27 13:23:14 -0700851/(?'ABC'\[[bar](]{1793}*THEN:\[A]{255}\[)]{1794}/expand,-fullbincode,parens_nest_limit=2000
852Failed: error 186 at offset 12820: regular expression is too complicated
Janis Danisevskis53e448c2016-03-31 13:35:25 +0100853
854/(?(1)(?1)){8,}+()/debug
855------------------------------------------------------------------
856 0 181 Bra
857 5 159 Once
858 10 13 Cond
859 15 1 Cond ref
860 18 169 Recurse
861 23 13 Ket
862 28 13 Cond
863 33 1 Cond ref
864 36 169 Recurse
865 41 13 Ket
866 46 13 Cond
867 51 1 Cond ref
868 54 169 Recurse
869 59 13 Ket
870 64 13 Cond
871 69 1 Cond ref
872 72 169 Recurse
873 77 13 Ket
874 82 13 Cond
875 87 1 Cond ref
876 90 169 Recurse
877 95 13 Ket
878100 13 Cond
879105 1 Cond ref
880108 169 Recurse
881113 13 Ket
882118 13 Cond
883123 1 Cond ref
884126 169 Recurse
885131 13 Ket
886136 23 SBraPos
887141 13 SCond
888146 1 Cond ref
889149 169 Recurse
890154 13 Ket
891159 23 KetRpos
892164 159 Ket
893169 7 CBra 1
894176 7 Ket
895181 181 Ket
896186 End
897------------------------------------------------------------------
Elliott Hughes0c26e192019-08-07 12:24:46 -0700898Capture group count = 1
Janis Danisevskis53e448c2016-03-31 13:35:25 +0100899Max 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 91 Bra
909 5 69 Once
910 10 8 Cond
911 15 1 Cond ref
912 18 14 Alt
913 23 a
914 25 79 Recurse
915 30 b
916 32 22 Ket
917 37 32 SBraPos
918 42 8 SCond
919 47 1 Cond ref
920 50 14 Alt
921 55 a
922 57 79 Recurse
923 62 b
924 64 22 Ket
925 69 32 KetRpos
926 74 69 Ket
927 79 7 CBra 1
928 86 7 Ket
929 91 91 Ket
930 96 End
931------------------------------------------------------------------
Elliott Hughes0c26e192019-08-07 12:24:46 -0700932Capture group count = 1
Janis Danisevskis53e448c2016-03-31 13:35:25 +0100933Max 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 327 Bra
942 5 102 CBra 1
943 12 5 Recurse
944 17 219 Recurse
945 22 231 Recurse
946 27 243 Recurse
947 32 255 Recurse
948 37 267 Recurse
949 42 279 Recurse
950 47 291 Recurse
951 52 303 Recurse
952 57 303 Recurse
953 62 291 Recurse
954 67 279 Recurse
955 72 267 Recurse
956 77 255 Recurse
957 82 243 Recurse
958 87 231 Recurse
959 92 219 Recurse
960 97 5 Recurse
961102 0 Recurse
962107 102 Ket
963112 102 SCBra 1
964119 5 Recurse
965124 219 Recurse
966129 231 Recurse
967134 243 Recurse
968139 255 Recurse
969144 267 Recurse
970149 279 Recurse
971154 291 Recurse
972159 303 Recurse
973164 303 Recurse
974169 291 Recurse
975174 279 Recurse
976179 267 Recurse
977184 255 Recurse
978189 243 Recurse
979194 231 Recurse
980199 219 Recurse
981204 5 Recurse
982209 0 Recurse
983214 102 KetRmax
984219 7 CBra 2
985226 7 Ket
986231 7 CBra 3
987238 7 Ket
988243 7 CBra 4
989250 7 Ket
990255 7 CBra 5
991262 7 Ket
992267 7 CBra 6
993274 7 Ket
994279 7 CBra 7
995286 7 Ket
996291 7 CBra 8
997298 7 Ket
998303 7 CBra 9
999310 7 Ket
1000315 7 CBra 10
1001322 7 Ket
1002327 327 Ket
1003332 End
1004------------------------------------------------------------------
Elliott Hughes0c26e192019-08-07 12:24:46 -07001005Capture group count = 10
Janis Danisevskis53e448c2016-03-31 13:35:25 +01001006May match empty string
1007Subject length lower bound = 0
1008
Janis Danisevskis8b979b22016-08-15 16:09:16 +01001009/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([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
Janis Danisevskis53e448c2016-03-31 13:35:25 +01001018# End of testinput8