Если имена файлов начинаются с цифр, нет необходимости использовать регулярные выражения, попробуйте вместо этого:
foreach (glob('/path/to/dir/{0,1,2,3,4,5,6,7,8,9}*', GLOB_BRACE) as $file)
{
echo $file . ' = ' . intval(basename($file)) . "<br />\n";
}
Этот обновленный шаблон глобуса будет соответствовать только именам файлов, начинающимся с цифры , как вы и просили.
@ ghostdog74 : Вы правы.
foreach (glob('/path/to/dir/{0,1,2,3,4,5,6,7,8,9}*', GLOB_BRACE) as $file)
{
echo $file . ' = ' . filter_var(basename($file), FILTER_SANITIZE_NUMBER_INT) . "<br />\n";
}