3v4l.org

run code in 300+ PHP versions simultaneously
<?php $data ='Hello Test1 Begin * nm: 866 444 988 * nm: 08 66 # allowed * nm: 77 2 End * nm: 0 Hello Test1 Begin * nm: 866 444 988 * nm: 08 66 441 # allowed * nm: 77 2 Ed * nm:0'; $pattern = <<<'EOD' ~ (?:\G(?!\A)|^Begin$) (?> \R (?: (?:\Q# allowed \E)? \Q* nm:\E | (?=End$) | .* ) )* (?:[ ] \K (\d+) | \z) ~xm EOD; $ebFlag = false; # set if the end boundary is needed if (preg_match_all($pattern, $data, $m) ) { print_r($m); }
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 9, Position 2 = 12
Branch analysis from position: 9
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 12
filename:       /in/Y9ZIo
function name:  (null)
number of ops:  13
compiled vars:  !0 = $data, !1 = $pattern, !2 = $ebFlag, !3 = $m
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, 'Hello%0ATest1%0ABegin%0A%2A+nm%3A+866+444+988%0A%2A+nm%3A+08+66%0A%23+allowed+%2A+nm%3A+77+2%0AEnd%0A%2A+nm%3A+0%0A%0AHello%0ATest1%0ABegin%0A%2A+nm%3A+866+444+988%0A%2A+nm%3A+08+66%0A+441%0A%23+allowed+%2A+nm%3A+77+2%0AEd%0A%2A+nm%3A0'
   21     1        ASSIGN                                                   !1, '%7E%0A%28%3F%3A%5CG%28%3F%21%5CA%29%7C%5EBegin%24%29%0A%28%3F%3E+%5CR%0A++++%28%3F%3A%0A++++++++%28%3F%3A%5CQ%23+allowed+%5CE%29%3F+%5CQ%2A+nm%3A%5CE+%0A++++++%7C%0A++++++++%28%3F%3DEnd%24%29%0A++++++%7C+%0A+++++++.%2A%0A++++%29++%0A%29%2A+%28%3F%3A%5B+%5D+%5CK+%28%5Cd%2B%29+%7C+%5Cz%29%0A%7Exm'
   36     2        ASSIGN                                                   !2, <false>
   38     3        INIT_FCALL                                               'preg_match_all'
          4        SEND_VAR                                                 !1
          5        SEND_VAR                                                 !0
          6        SEND_REF                                                 !3
          7        DO_ICALL                                         $7      
          8      > JMPZ                                                     $7, ->12
   39     9    >   INIT_FCALL                                               'print_r'
         10        SEND_VAR                                                 !3
         11        DO_ICALL                                                 
   40    12    > > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
156.88 ms | 1395 KiB | 17 Q