3v4l.org

run code in 300+ PHP versions simultaneously
<?php $strings = [ 'dir1summary', 'dir10summary', 'dir1summarydue', 'dir10summarydue', 'directive1', 'directive10', 'directivecode1', 'directivecode10', ]; var_export(preg_replace_callback('/dir(?:ective)?(\D*)(\d+)(.*)/', function ($m) { return "directive{$m[1]}{$m[3]}" . str_pad($m[2], 2, "0", STR_PAD_LEFT); }, $strings));

preferences:
24.26 ms | 406 KiB | 5 Q