Если мы не хотим проверять наши числа, возможно, мы могли бы начать с простого выражения, может быть, что-то похожее на:
(?:^|\s)([+-]?[\d:.,]*\d)\b
Тест
$re = '/(?:^|\s)([+-]?[\d:.,]*\d)\b/s';
$str = 'text 2030 text 2,5 text 2.000.000 2,000,000 -200 +31600000000. 200. 2.5 200? 1:200
';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
var_dump($matches);
Вправая панель этой демонстрации , выражение будет дополнительно объяснено, если вам может быть интересно.
РЕДАКТИРОВАТЬ:
Другое выражение будет:
(?:^|\s)\K[+-]?(?:\d+:\d+|\d+(?:[.,]\d{1,3})+|\d+)\b
, который не подтвердит наши номера и просто соберет перечисленные, с некоторыми недействительными номерами.