3v4l.org

run code in 500+ PHP versions simultaneously
<?php $re = '/(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){255,})(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){65,}@)(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22))(?:\.(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?:\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\]))/'; $s = '0@[IPv6:7:6:' . str_repeat('a:1:2:::3:a:a1', 2000) . '\x00'; ini_set("pcre.jit", "0"); $start = microtime(true); preg_match($re, $s); $end = microtime(true); if(preg_last_error()==PREG_NO_ERROR) printf('%d ms', ($end - $start) * 1000);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 26, Position 2 = 32
Branch analysis from position: 26
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 32
filename:       /in/TCrab
function name:  (null)
number of ops:  33
compiled vars:  !0 = $re, !1 = $s, !2 = $start, !3 = $end
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                       !0, '%2F%28%3F%21%28%3F%3A%28%3F%3A%5Cx22%3F%5Cx5C%5B%5Cx00-%5Cx7E%5D%5Cx22%3F%29%7C%28%3F%3A%5Cx22%3F%5B%5E%5Cx5C%5Cx22%5D%5Cx22%3F%29%29%7B255%2C%7D%29%28%3F%21%28%3F%3A%28%3F%3A%5Cx22%3F%5Cx5C%5B%5Cx00-%5Cx7E%5D%5Cx22%3F%29%7C%28%3F%3A%5Cx22%3F%5B%5E%5Cx5C%5Cx22%5D%5Cx22%3F%29%29%7B65%2C%7D%40%29%28%3F%3A%28%3F%3A%5B%5Cx21%5Cx23-%5Cx27%5Cx2A%5Cx2B%5Cx2D%5Cx2F-%5Cx39%5Cx3D%5Cx3F%5Cx5E-%5Cx7E%5D%2B%29%7C%28%3F%3A%5Cx22%28%3F%3A%5B%5Cx01-%5Cx08%5Cx0B%5Cx0C%5Cx0E-%5Cx1F%5Cx21%5Cx23-%5Cx5B%5Cx5D-%5Cx7F%5D%7C%28%3F%3A%5Cx5C%5B%5Cx00-%5Cx7F%5D%29%29%2A%5Cx22%29%29%28%3F%3A%5C.%28%3F%3A%28%3F%3A%5B%5Cx21%5Cx23-%5Cx27%5Cx2A%5Cx2B%5Cx2D%5Cx2F-%5Cx39%5Cx3D%5Cx3F%5Cx5E-%5Cx7E%5D%2B%29%7C%28%3F%3A%5Cx22%28%3F%3A%5B%5Cx01-%5Cx08%5Cx0B%5Cx0C%5Cx0E-%5Cx1F%5Cx21%5Cx23-%5Cx5B%5Cx5D-%5Cx7F%5D%7C%28%3F%3A%5Cx5C%5B%5Cx00-%5Cx7F%5D%29%29%2A%5Cx22%29%29%29%2A%40%28%3F%3A%28%3F%3A%28%3F%21.%2A%5B%5E.%5D%7B64%2C%7D%29%28%3F%3A%28%3F%3A%28%3F%3Axn--%29%3F%5Ba-z0-9%5D%2B%28%3F%3A-%5Ba-z0-9%5D%2B%29%2A%5C.%29%7B1%2C126%7D%29%7B1%2C%7D%28%3F%3A%28%3F%3A%5Ba-z%5D%5Ba-z0-9%5D%2A%29%7C%28%3F%3A%28%3F%3Axn--%29%5Ba-z0-9%5D%2B%29%29%28%3F%3A-%5Ba-z0-9%5D%2B%29%2A%29%7C%28%3F%3A%5C%5B%28%3F%3A%28%3F%3AIPv6%3A%28%3F%3A%28%3F%3A%5Ba-f0-9%5D%7B1%2C4%7D%28%3F%3A%3A%5Ba-f0-9%5D%7B1%2C4%7D%29%7B7%7D%29%7C%28%3F%3A%28%3F%21%28%3F%3A.%2A%5Ba-f0-9%5D%5B%3A%5C%5D%5D%29%7B7%2C%7D%29%28%3F%3A%5Ba-f0-9%5D%7B1%2C4%7D%28%3F%3A%3A%5Ba-f0-9%5D%7B1%2C4%7D%29%7B0%2C5%7D%29%3F%3A%3A%28%3F%3A%5Ba-f0-9%5D%7B1%2C4%7D%28%3F%3A%3A%5Ba-f0-9%5D%7B1%2C4%7D%29%7B0%2C5%7D%29%3F%29%29%29%7C%28%3F%3A%28%3F%3AIPv6%3A%28%3F%3A%28%3F%3A%5Ba-f0-9%5D%7B1%2C4%7D%28%3F%3A%3A%5Ba-f0-9%5D%7B1%2C4%7D%29%7B5%7D%3A%29%7C%28%3F%3A%28%3F%21%28%3F%3A.%2A%5Ba-f0-9%5D%3A%29%7B5%2C%7D%29%28%3F%3A%5Ba-f0-9%5D%7B1%2C4%7D%28%3F%3A%3A%5Ba-f0-9%5D%7B1%2C4%7D%29%7B0%2C3%7D%29%3F%3A%3A%28%3F%3A%5Ba-f0-9%5D%7B1%2C4%7D%28%3F%3A%3A%5Ba-f0-9%5D%7B1%2C4%7D%29%7B0%2C3%7D%3A%29%3F%29%29%29%3F%28%3F%3A%28%3F%3A25%5B0-5%5D%29%7C%28%3F%3A2%5B0-4%5D%5B0-9%5D%29%7C%28%3F%3A1%5B0-9%5D%7B2%7D%29%7C%28%3F%3A%5B1-9%5D%3F%5B0-9%5D%29%29%28%3F%3A%5C.%28%3F%3A%28%3F%3A25%5B0-5%5D%29%7C%28%3F%3A2%5B0-4%5D%5B0-9%5D%29%7C%28%3F%3A1%5B0-9%5D%7B2%7D%29%7C%28%3F%3A%5B1-9%5D%3F%5B0-9%5D%29%29%29%7B3%7D%29%29%5C%5D%29%29%2F'
    4     1        INIT_FCALL                                                   'str_repeat'
          2        SEND_VAL                                                     'a%3A1%3A2%3A%3A%3A3%3Aa%3Aa1'
          3        SEND_VAL                                                     2000
          4        DO_ICALL                                             $5      
          5        CONCAT                                               ~6      '0%40%5BIPv6%3A7%3A6%3A', $5
          6        CONCAT                                               ~7      ~6, '%5Cx00'
          7        ASSIGN                                                       !1, ~7
    6     8        INIT_FCALL                                                   'ini_set'
          9        SEND_VAL                                                     'pcre.jit'
         10        SEND_VAL                                                     '0'
         11        DO_ICALL                                                     
    8    12        INIT_FCALL                                                   'microtime'
         13        SEND_VAL                                                     <true>
         14        DO_ICALL                                             $10     
         15        ASSIGN                                                       !2, $10
    9    16        FRAMELESS_ICALL_2                preg_match          ~12     !0, !1
         17        FREE                                                         ~12
   10    18        INIT_FCALL                                                   'microtime'
         19        SEND_VAL                                                     <true>
         20        DO_ICALL                                             $13     
         21        ASSIGN                                                       !3, $13
   12    22        INIT_FCALL                                                   'preg_last_error'
         23        DO_ICALL                                             $15     
         24        IS_EQUAL                                                     $15, 0
         25      > JMPZ                                                         ~16, ->32
   13    26    >   INIT_FCALL                                                   'printf'
         27        SEND_VAL                                                     '%25d+ms'
         28        SUB                                                  ~17     !3, !2
         29        MUL                                                  ~18     ~17, 1000
         30        SEND_VAL                                                     ~18
         31        DO_ICALL                                                     
         32    > > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
137.83 ms | 1124 KiB | 19 Q