Слишком медленно, я ^^.
Ну, если вы не застряли на preg_match, вот быстрая и удобочитаемая альтернатива:
$num = (int)substr($url, strlen($beg));
(глядя на ваш код, я догадался, что искомое число является числовым идентификатором, это типично для URL-адресов, выглядящих так, и не будет "12abc" или чем-то еще.)