Вместо того, чтобы использовать маршрут регулярного выражения (или другие грубые манипуляции со строками), возможно, с некоторыми функциями, связанными с именами файлов, будет проще жить: а именно pathinfo (для получения расширения файла) и basename (для получения имени файла без расширения).
$ext = pathinfo($filename, PATHINFO_EXTENSION);
$thumb = basename($filename, ".$ext") . '_thumb.' . $ext;
Редактировать : @tanascius извините за очень похожий ответ, думаю, мне следовало проверить маленькое всплывающее окно во время написания этого (это заняло некоторое время, я отвлекся).