[TC] Регулярные выражения: убрать все нецифровые символы

Vande omentaina, Tiflocomp!
Как всегда ощущаю себя полнейшей бездарью...
Простейшая задачка: есть папка с фотками. Файлы называются foto1.jpg,
foto25.jpg, foto468.jpg etc.
Задача: вычленить айдишники (цифры) из имени файла.
Отрезать каким-нибудь Substr'ом я могу (видимо, так сейчас и буду
делать). Но порядочные люди пользуют простейший регексп, который бы
удалял из имени всё, что не цифра. Пробовал уже много всякого и
доковырял вот до этого:
$PhotoId=preg_replace ("!^[(.+?)(\d+)(.+?)]$!", "$2", $file);
Что не так?
Спасибо!
Vande omentaina, все!
Конечно, я её таки решил, выкрутившись одной строкой:
$PhotoId=substr($file, 4, -4);
Однако регексп был бы всё равно интересен.