Compiling REx `(a(?{$a_counter ++;}))+(b(?{$b_counter ++;}))+' size 25 Got 204 bytes for offset annotations. first at 5 1: CURLYX[0] {1,32767}(12) 3: OPEN1(5) 5: EXACT <a>(7) 7: EVAL(9) 9: CLOSE1(11) 11: WHILEM[1/2](0) 12: NOTHING(13) 13: CURLYX[1] {1,32767}(24) 15: OPEN2(17) 17: EXACT <b>(19) 19: EVAL(21) 21: CLOSE2(23) 23: WHILEM[2/2](0) 24: NOTHING(25) 25: END(0) anchored "a" at 0 floating "ab" at 0..2147483647 (checking floating) m +inlen 2 with eval Offsets: [25] 23[1] 0[0] 1[1] 0[0] 2[1] 0[0] 3[19] 0[0] 22[1] 0[0] 23[0] 23[0] 4 +6[1] 0[0] 24[1] 0[0] 25[1] 0[0] 26[19] 0[0] 45[1] 0[0] 46[0] 46[0] 47 +[0] Guessing start of match, REx "(a(?{$a_counter ++;}))+(b(?{$b_counter + ++;}))+" against "aaabbbb"... Found floating substr "ab" at offset 2... Found anchored substr "a" at offset 0... Guessed: match at offset 0 Matching REx "(a(?{$a_counter ++;}))+(b(?{$b_counter ++;}))+" against +"aaabbbb" Setting an EVAL scope, savestack=28 0 <> <aaabbbb> | 1: CURLYX[0] {1,32767} 0 <> <aaabbbb> | 11: WHILEM[1/2] 0 out of 1..32767 cc=140f960 0 <> <aaabbbb> | 3: OPEN1 0 <> <aaabbbb> | 5: EXACT <a> 1 <a> <aabbbb> | 7: EVAL re_eval 0x18472a4 1 <a> <aabbbb> | 9: CLOSE1 1 <a> <aabbbb> | 11: WHILEM[1/2] 1 out of 1..32767 cc=140f960 Setting an EVAL scope, savestack=41 1 <a> <aabbbb> | 3: OPEN1 1 <a> <aabbbb> | 5: EXACT <a> 2 <aa> <abbbb> | 7: EVAL re_eval 0x18472a4 2 <aa> <abbbb> | 9: CLOSE1 2 <aa> <abbbb> | 11: WHILEM[1/2] 2 out of 1..32767 cc=140f960 Setting an EVAL scope, savestack=54 2 <aa> <abbbb> | 3: OPEN1 2 <aa> <abbbb> | 5: EXACT <a> 3 <aaa> <bbbb> | 7: EVAL re_eval 0x18472a4 3 <aaa> <bbbb> | 9: CLOSE1 3 <aaa> <bbbb> | 11: WHILEM[1/2] 3 out of 1..32767 cc=140f960 Setting an EVAL scope, savestack=67 3 <aaa> <bbbb> | 3: OPEN1 3 <aaa> <bbbb> | 5: EXACT <a> failed... restoring \1 to 2(2)..3 restoring \2..\2 to undef failed, try continuation... 3 <aaa> <bbbb> | 12: NOTHING 3 <aaa> <bbbb> | 13: CURLYX[1] {1,32767} 3 <aaa> <bbbb> | 23: WHILEM[2/2] 0 out of 1..32767 cc=140f384 3 <aaa> <bbbb> | 15: OPEN2 3 <aaa> <bbbb> | 17: EXACT <b> 4 <aaab> <bbb> | 19: EVAL re_eval 0x18471e8 4 <aaab> <bbb> | 21: CLOSE2 4 <aaab> <bbb> | 23: WHILEM[2/2] 1 out of 1..32767 cc=140f38 +4 Setting an EVAL scope, savestack=70 4 <aaab> <bbb> | 15: OPEN2 4 <aaab> <bbb> | 17: EXACT <b> 5 <aaabb> <bb> | 19: EVAL re_eval 0x18471e8 5 <aaabb> <bb> | 21: CLOSE2 5 <aaabb> <bb> | 23: WHILEM[2/2] 2 out of 1..32767 cc=140f +384 Setting an EVAL scope, savestack=83 5 <aaabb> <bb> | 15: OPEN2 5 <aaabb> <bb> | 17: EXACT <b> 6 <aaabbb> <b> | 19: EVAL re_eval 0x18471e8 6 <aaabbb> <b> | 21: CLOSE2 6 <aaabbb> <b> | 23: WHILEM[2/2] 3 out of 1..32767 cc=14 +0f384 Setting an EVAL scope, savestack=96 6 <aaabbb> <b> | 15: OPEN2 6 <aaabbb> <b> | 17: EXACT <b> 7 <aaabbbb> <> | 19: EVAL re_eval 0x18471e8 7 <aaabbbb> <> | 21: CLOSE2 7 <aaabbbb> <> | 23: WHILEM[2/2] 4 out of 1..32767 cc= +140f384 Setting an EVAL scope, savestack=109 7 <aaabbbb> <> | 15: OPEN2 7 <aaabbbb> <> | 17: EXACT <b> failed... restoring \2 to 6(6)..7 failed, try continuati +on... 7 <aaabbbb> <> | 24: NOTHING 7 <aaabbbb> <> | 25: END Match successful! Guessing start of match, REx "(a(?{$a_counter ++;}))+(b(?{$b_counter + ++;}))+" against "ab"... Found floating substr "ab" at offset 0... Found anchored substr "a" at offset 0... Guessed: match at offset 0 Matching REx "(a(?{$a_counter ++;}))+(b(?{$b_counter ++;}))+" against +"ab" Setting an EVAL scope, savestack=28 0 <> <ab> | 1: CURLYX[0] {1,32767} 0 <> <ab> | 11: WHILEM[1/2] 0 out of 1..32767 cc=140f960 0 <> <ab> | 3: OPEN1 0 <> <ab> | 5: EXACT <a> 1 <a> <b> | 7: EVAL re_eval 0x18472a4 1 <a> <b> | 9: CLOSE1 1 <a> <b> | 11: WHILEM[1/2] 1 out of 1..32767 cc=140f960 Setting an EVAL scope, savestack=41 1 <a> <b> | 3: OPEN1 1 <a> <b> | 5: EXACT <a> failed... restoring \1 to 0(0)..1 restoring \2..\2 to undef failed, try continuation... 1 <a> <b> | 12: NOTHING 1 <a> <b> | 13: CURLYX[1] {1,32767} 1 <a> <b> | 23: WHILEM[2/2] 0 out of 1..32767 cc=140f5dc 1 <a> <b> | 15: OPEN2 1 <a> <b> | 17: EXACT <b> 2 <ab> <> | 19: EVAL re_eval 0x18471e8 2 <ab> <> | 21: CLOSE2 2 <ab> <> | 23: WHILEM[2/2] 1 out of 1..32767 cc=140f5dc Setting an EVAL scope, savestack=44 2 <ab> <> | 15: OPEN2 2 <ab> <> | 17: EXACT <b> failed... restoring \2 to 1(1)..2 failed, try continuation... 2 <ab> <> | 24: NOTHING 2 <ab> <> | 25: END Match successful! Guessing start of match, REx "(a(?{$a_counter ++;}))+(b(?{$b_counter + ++;}))+" against "abb"... Found floating substr "ab" at offset 0... Found anchored substr "a" at offset 0... Guessed: match at offset 0 Matching REx "(a(?{$a_counter ++;}))+(b(?{$b_counter ++;}))+" against +"abb" Setting an EVAL scope, savestack=28 0 <> <abb> | 1: CURLYX[0] {1,32767} 0 <> <abb> | 11: WHILEM[1/2] 0 out of 1..32767 cc=140f960 0 <> <abb> | 3: OPEN1 0 <> <abb> | 5: EXACT <a> 1 <a> <bb> | 7: EVAL re_eval 0x18472a4 1 <a> <bb> | 9: CLOSE1 1 <a> <bb> | 11: WHILEM[1/2] 1 out of 1..32767 cc=140f960 Setting an EVAL scope, savestack=41 1 <a> <bb> | 3: OPEN1 1 <a> <bb> | 5: EXACT <a> failed... restoring \1 to 0(0)..1 restoring \2..\2 to undef failed, try continuation... 1 <a> <bb> | 12: NOTHING 1 <a> <bb> | 13: CURLYX[1] {1,32767} 1 <a> <bb> | 23: WHILEM[2/2] 0 out of 1..32767 cc=140f5dc 1 <a> <bb> | 15: OPEN2 1 <a> <bb> | 17: EXACT <b> 2 <ab> <b> | 19: EVAL re_eval 0x18471e8 2 <ab> <b> | 21: CLOSE2 2 <ab> <b> | 23: WHILEM[2/2] 1 out of 1..32767 cc=140f5dc Setting an EVAL scope, savestack=44 2 <ab> <b> | 15: OPEN2 2 <ab> <b> | 17: EXACT <b> 3 <abb> <> | 19: EVAL re_eval 0x18471e8 3 <abb> <> | 21: CLOSE2 3 <abb> <> | 23: WHILEM[2/2] 2 out of 1..32767 cc=140f5dc Setting an EVAL scope, savestack=57 3 <abb> <> | 15: OPEN2 3 <abb> <> | 17: EXACT <b> failed... restoring \2 to 2(2)..3 failed, try continuation... 3 <abb> <> | 24: NOTHING 3 <abb> <> | 25: END Match successful! Guessing start of match, REx "(a(?{$a_counter ++;}))+(b(?{$b_counter + ++;}))+" against "aabb"... Found floating substr "ab" at offset 1... Found anchored substr "a" at offset 0... Guessed: match at offset 0 Matching REx "(a(?{$a_counter ++;}))+(b(?{$b_counter ++;}))+" against +"aabb" Setting an EVAL scope, savestack=28 0 <> <aabb> | 1: CURLYX[0] {1,32767} 0 <> <aabb> | 11: WHILEM[1/2] 0 out of 1..32767 cc=140f960 0 <> <aabb> | 3: OPEN1 0 <> <aabb> | 5: EXACT <a> 1 <a> <abb> | 7: EVAL re_eval 0x18472a4 1 <a> <abb> | 9: CLOSE1 1 <a> <abb> | 11: WHILEM[1/2] 1 out of 1..32767 cc=140f960 Setting an EVAL scope, savestack=41 1 <a> <abb> | 3: OPEN1 1 <a> <abb> | 5: EXACT <a> 2 <aa> <bb> | 7: EVAL re_eval 0x18472a4 2 <aa> <bb> | 9: CLOSE1 2 <aa> <bb> | 11: WHILEM[1/2] 2 out of 1..32767 cc=140f960 Setting an EVAL scope, savestack=54 2 <aa> <bb> | 3: OPEN1 2 <aa> <bb> | 5: EXACT <a> failed... restoring \1 to 1(1)..2 restoring \2..\2 to undef failed, try continuation... 2 <aa> <bb> | 12: NOTHING 2 <aa> <bb> | 13: CURLYX[1] {1,32767} 2 <aa> <bb> | 23: WHILEM[2/2] 0 out of 1..32767 cc=140f4b0 2 <aa> <bb> | 15: OPEN2 2 <aa> <bb> | 17: EXACT <b> 3 <aab> <b> | 19: EVAL re_eval 0x18471e8 3 <aab> <b> | 21: CLOSE2 3 <aab> <b> | 23: WHILEM[2/2] 1 out of 1..32767 cc=140f4b0 Setting an EVAL scope, savestack=57 3 <aab> <b> | 15: OPEN2 3 <aab> <b> | 17: EXACT <b> 4 <aabb> <> | 19: EVAL re_eval 0x18471e8 4 <aabb> <> | 21: CLOSE2 4 <aabb> <> | 23: WHILEM[2/2] 2 out of 1..32767 cc=140f4b +0 Setting an EVAL scope, savestack=70 4 <aabb> <> | 15: OPEN2 4 <aabb> <> | 17: EXACT <b> failed... restoring \2 to 3(3)..4 failed, try continuation... 4 <aabb> <> | 24: NOTHING 4 <aabb> <> | 25: END Match successful! Guessing start of match, REx "(a(?{$a_counter ++;}))+(b(?{$b_counter + ++;}))+" against "aaabb"... Found floating substr "ab" at offset 2... Found anchored substr "a" at offset 0... Guessed: match at offset 0 Matching REx "(a(?{$a_counter ++;}))+(b(?{$b_counter ++;}))+" against +"aaabb" Setting an EVAL scope, savestack=28 0 <> <aaabb> | 1: CURLYX[0] {1,32767} 0 <> <aaabb> | 11: WHILEM[1/2] 0 out of 1..32767 cc=140f960 0 <> <aaabb> | 3: OPEN1 0 <> <aaabb> | 5: EXACT <a> 1 <a> <aabb> | 7: EVAL re_eval 0x18472a4 1 <a> <aabb> | 9: CLOSE1 1 <a> <aabb> | 11: WHILEM[1/2] 1 out of 1..32767 cc=140f960 Setting an EVAL scope, savestack=41 1 <a> <aabb> | 3: OPEN1 1 <a> <aabb> | 5: EXACT <a> 2 <aa> <abb> | 7: EVAL re_eval 0x18472a4 2 <aa> <abb> | 9: CLOSE1 2 <aa> <abb> | 11: WHILEM[1/2] 2 out of 1..32767 cc=140f960 Setting an EVAL scope, savestack=54 2 <aa> <abb> | 3: OPEN1 2 <aa> <abb> | 5: EXACT <a> 3 <aaa> <bb> | 7: EVAL re_eval 0x18472a4 3 <aaa> <bb> | 9: CLOSE1 3 <aaa> <bb> | 11: WHILEM[1/2] 3 out of 1..32767 cc=140f960 Setting an EVAL scope, savestack=67 3 <aaa> <bb> | 3: OPEN1 3 <aaa> <bb> | 5: EXACT <a> failed... restoring \1 to 2(2)..3 restoring \2..\2 to undef failed, try continuation... 3 <aaa> <bb> | 12: NOTHING 3 <aaa> <bb> | 13: CURLYX[1] {1,32767} 3 <aaa> <bb> | 23: WHILEM[2/2] 0 out of 1..32767 cc=140f384 3 <aaa> <bb> | 15: OPEN2 3 <aaa> <bb> | 17: EXACT <b> 4 <aaab> <b> | 19: EVAL re_eval 0x18471e8 4 <aaab> <b> | 21: CLOSE2 4 <aaab> <b> | 23: WHILEM[2/2] 1 out of 1..32767 cc=140f38 +4 Setting an EVAL scope, savestack=70 4 <aaab> <b> | 15: OPEN2 4 <aaab> <b> | 17: EXACT <b> 5 <aaabb> <> | 19: EVAL re_eval 0x18471e8 5 <aaabb> <> | 21: CLOSE2 5 <aaabb> <> | 23: WHILEM[2/2] 2 out of 1..32767 cc=140f +384 Setting an EVAL scope, savestack=83 5 <aaabb> <> | 15: OPEN2 5 <aaabb> <> | 17: EXACT <b> failed... restoring \2 to 4(4)..5 failed, try continuation.. +. 5 <aaabb> <> | 24: NOTHING 5 <aaabb> <> | 25: END Match successful! Guessing start of match, REx "(a(?{$a_counter ++;}))+(b(?{$b_counter + ++;}))+" against "aabbb"... Found floating substr "ab" at offset 1... Found anchored substr "a" at offset 0... Guessed: match at offset 0 Matching REx "(a(?{$a_counter ++;}))+(b(?{$b_counter ++;}))+" against +"aabbb" Setting an EVAL scope, savestack=28 0 <> <aabbb> | 1: CURLYX[0] {1,32767} 0 <> <aabbb> | 11: WHILEM[1/2] 0 out of 1..32767 cc=140f960 0 <> <aabbb> | 3: OPEN1 0 <> <aabbb> | 5: EXACT <a> 1 <a> <abbb> | 7: EVAL re_eval 0x18472a4 1 <a> <abbb> | 9: CLOSE1 1 <a> <abbb> | 11: WHILEM[1/2] 1 out of 1..32767 cc=140f960 Setting an EVAL scope, savestack=41 1 <a> <abbb> | 3: OPEN1 1 <a> <abbb> | 5: EXACT <a> 2 <aa> <bbb> | 7: EVAL re_eval 0x18472a4 2 <aa> <bbb> | 9: CLOSE1 2 <aa> <bbb> | 11: WHILEM[1/2] 2 out of 1..32767 cc=140f960 Setting an EVAL scope, savestack=54 2 <aa> <bbb> | 3: OPEN1 2 <aa> <bbb> | 5: EXACT <a> failed... restoring \1 to 1(1)..2 restoring \2..\2 to undef failed, try continuation... 2 <aa> <bbb> | 12: NOTHING 2 <aa> <bbb> | 13: CURLYX[1] {1,32767} 2 <aa> <bbb> | 23: WHILEM[2/2] 0 out of 1..32767 cc=140f4b0 2 <aa> <bbb> | 15: OPEN2 2 <aa> <bbb> | 17: EXACT <b> 3 <aab> <bb> | 19: EVAL re_eval 0x18471e8 3 <aab> <bb> | 21: CLOSE2 3 <aab> <bb> | 23: WHILEM[2/2] 1 out of 1..32767 cc=140f4b0 Setting an EVAL scope, savestack=57 3 <aab> <bb> | 15: OPEN2 3 <aab> <bb> | 17: EXACT <b> 4 <aabb> <b> | 19: EVAL re_eval 0x18471e8 4 <aabb> <b> | 21: CLOSE2 4 <aabb> <b> | 23: WHILEM[2/2] 2 out of 1..32767 cc=140f4b +0 Setting an EVAL scope, savestack=70 4 <aabb> <b> | 15: OPEN2 4 <aabb> <b> | 17: EXACT <b> 5 <aabbb> <> | 19: EVAL re_eval 0x18471e8 5 <aabbb> <> | 21: CLOSE2 5 <aabbb> <> | 23: WHILEM[2/2] 3 out of 1..32767 cc=140f +4b0 Setting an EVAL scope, savestack=83 5 <aabbb> <> | 15: OPEN2 5 <aabbb> <> | 17: EXACT <b> failed... restoring \2 to 4(4)..5 failed, try continuation.. +. 5 <aabbb> <> | 24: NOTHING 5 <aabbb> <> | 25: END Match successful! In aaabbbb there were 3 'a's and 4 'b's. In ab there were 0 'a's and 0 'b's. In abb there were 0 'a's and 0 'b's. In aabb there were 0 'a's and 0 'b's. In aaabb there were 0 'a's and 0 'b's. In aabbb there were 0 'a's and 0 'b's. Freeing REx: `"(a(?{$a_counter ++;}))+(b(?{$b_counter ++;}))+"'
In reply to Re^4: Extracting the number of repetitions
by pat_mc
in thread Extracting the number of repetitions from a regex
by pat_mc
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |