Как сказала Эмма, это сложно.
Мои предложения
(^\d{1}[,.]\d{1,8}$)|(^\d{2}[,.]\d{1,7}$)|(^\d{3}[,.]\d{1,6}$)|(^\d{4}[,.]\d{1,5}$)|(^\d{5}[,.]\d{1,4}$)|(^\d{6}[,.]\d{1,3}$)|(^\d{7}[,.]\d{1,2}$)|(^\d{8}[,.]\d{1,1}$)|(^\d{1,9}$)
Первая группа проверяет все числа с плавающей запятой одной цифрой до десятичной точки и от 1 до 8 десятичных знаков
Втораягруппа проверяет все числа с плавающей запятой с двумя цифрами перед десятичной точкой и от 1 до 7 десятичных знаков
Третья группа проверяет все числа с плавающей запятой с тремя цифрами перед десятичной точкой и от 1 до 6 десятичных знаков
И так далее ...
Последняя группа проверяет все целые числа от 1 до 9 цифр
W / o ^
и $
в каждой группе, она обнаружила последние 9 чисел в количестве 9+ цифр при использовании многострочного флага
jex.im