3v4l.org

run code in 300+ PHP versions simultaneously
<?php $modules = ['redirect_404', 'redirect']; $modules_by_length = $modules; usort($modules_by_length, static fn ($a, $b) => strlen($b) - strlen($a)); $known_modules_pattern = implode('|', array_map( static fn ($x) => preg_quote($x, '/'), $modules_by_length, )); $module_preg = '/^(?<function>(?<module>' . $known_modules_pattern . ')_(?<hook>[a-zA-Z0-9_\x80-\xff]+$))(?<!update_\d)(?<!update_\d\d)(?<!update_\d\d\d)(?<!update_\d\d\d\d)/'; print $module_preg; preg_match($module_preg, 'redirect_404_update_8101', $matches); preg_match($module_preg, 'redirect_404_cron', $matches); var_dump($matches);

preferences:
39.96 ms | 409 KiB | 5 Q