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'; preg_match($re, $s); if(preg_last_error()!=PREG_NO_ERROR) echo preg_last_error_msg();

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
8.5.70.0100.00819.08
8.5.60.0130.00817.41
8.5.50.0050.00317.21
8.5.30.0110.00718.52
8.5.20.0090.01020.50
8.5.10.0100.00917.14
8.5.00.0120.01023.44
8.4.210.0060.00520.14
8.4.180.0110.01220.20
8.4.170.0110.01324.39
8.4.160.0060.01622.35
8.4.150.0090.00417.13
8.4.140.0150.00918.03
8.4.130.0150.00619.89
8.4.120.0110.01020.98
8.4.110.0430.01118.28
8.4.100.0420.01018.20
8.4.90.0240.00718.43
8.4.80.0290.01218.23
8.4.70.0390.00718.37
8.4.60.0430.00718.40
8.4.50.0260.00518.47
8.4.40.0270.00518.21
8.4.30.0390.01618.29
8.4.20.0410.01117.90
8.4.10.0420.01117.88
8.3.300.0110.01421.18
8.3.290.0100.01021.34
8.3.280.0130.00818.99
8.3.270.0120.01016.95
8.3.260.0150.00517.32
8.3.250.0080.00617.80
8.3.240.0410.00916.78
8.3.230.0270.00717.23
8.3.220.0370.00917.03
8.3.210.0230.00917.16
8.3.200.0380.01016.93
8.3.190.0360.01116.99
8.3.180.0420.01016.84
8.3.170.0490.00816.76
8.3.160.0460.00617.12
8.3.150.0400.00916.94
8.3.140.0450.00816.88
8.3.130.0310.00417.09
8.3.120.0210.00717.09
8.3.110.0380.00816.74
8.3.100.0440.00816.95
8.3.90.0350.00716.98
8.3.80.0390.01316.90
8.3.70.0340.01017.09
8.3.60.0420.01116.95
8.3.50.0250.00616.91
8.3.40.0180.00518.07
8.3.30.0370.00518.14
8.3.20.0310.00717.61
8.3.10.0330.00818.19
8.3.00.0340.00718.10
8.2.300.0090.01220.60
8.2.290.0350.00616.97
8.2.280.0320.00816.79
8.2.270.0380.00617.08
8.2.260.0330.01116.97
8.2.250.0360.00516.62
8.2.240.0270.00916.88
8.2.230.0160.00417.03
8.2.220.0290.00516.71
8.2.210.0150.00416.79
8.2.200.0140.00517.14
8.2.190.0220.00316.62
8.2.180.0270.00616.63
8.2.170.0180.00418.07
8.2.160.0140.00618.04
8.2.150.0230.00617.98
8.2.140.0370.00818.06
8.2.130.0320.01017.96
8.2.120.0150.00518.04
8.2.110.0370.00818.22
8.2.100.0240.00618.17
8.2.90.0360.00718.07
8.2.80.0410.00818.04
8.2.70.0360.00817.93
8.2.60.0310.00918.11
8.2.50.0250.00817.79
8.2.40.0240.00818.36
8.2.30.0360.00818.10
8.2.20.0320.00918.01
8.2.10.0210.00518.30
8.2.00.0130.00518.15
8.1.340.0110.01022.14
7.3.330.0280.00916.54

preferences:
53.85 ms | 867 KiB | 5 Q