3v4l.org

run code in 500+ PHP versions simultaneously
<?php ini_set('pcre.backtrack_limit', 100); for ($len = 1000; $len <= 1001; $len++) { $x = str_repeat("x", $len); $ret = preg_match("/x+x+y/", $x); echo "len = " . $len . "\n"; echo "preg_match = " . $ret . "\n"; echo "PREG_BACKTRACK_LIMIT_ERROR = " . PREG_BACKTRACK_LIMIT_ERROR . "\n"; echo "preg_last_error = " . preg_last_error() . "\n"; echo "\n"; }
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 27
Branch analysis from position: 27
2 jumps found. (Code = 44) Position 1 = 29, Position 2 = 6
Branch analysis from position: 29
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 6
2 jumps found. (Code = 44) Position 1 = 29, Position 2 = 6
Branch analysis from position: 29
Branch analysis from position: 6
filename:       /in/EpaNC
function name:  (null)
number of ops:  30
compiled vars:  !0 = $len, !1 = $x, !2 = $ret
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   INIT_FCALL                                                   'ini_set'
          1        SEND_VAL                                                     'pcre.backtrack_limit'
          2        SEND_VAL                                                     100
          3        DO_ICALL                                                     
    5     4        ASSIGN                                                       !0, 1000
          5      > JMP                                                          ->27
    7     6    >   INIT_FCALL                                                   'str_repeat'
          7        SEND_VAL                                                     'x'
          8        SEND_VAR                                                     !0
          9        DO_ICALL                                             $5      
         10        ASSIGN                                                       !1, $5
    8    11        FRAMELESS_ICALL_2                preg_match          ~7      '%2Fx%2Bx%2By%2F', !1
         12        ASSIGN                                                       !2, ~7
   10    13        CONCAT                                               ~9      'len+%3D+', !0
         14        CONCAT                                               ~10     ~9, '%0A'
         15        ECHO                                                         ~10
   11    16        CONCAT                                               ~11     'preg_match+%3D+', !2
         17        CONCAT                                               ~12     ~11, '%0A'
         18        ECHO                                                         ~12
   12    19        ECHO                                                         'PREG_BACKTRACK_LIMIT_ERROR+%3D+2%0A'
   13    20        INIT_FCALL                                                   'preg_last_error'
         21        DO_ICALL                                             $13     
         22        CONCAT                                               ~14     'preg_last_error+%3D+', $13
         23        CONCAT                                               ~15     ~14, '%0A'
         24        ECHO                                                         ~15
   14    25        ECHO                                                         '%0A'
    5    26        PRE_INC                                                      !0
         27    >   IS_SMALLER_OR_EQUAL                                          !0, 1001
         28      > JMPNZ                                                        ~17, ->6
   15    29    > > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
159.97 ms | 2637 KiB | 16 Q