Да, не имеет ничего общего с регулярным выражением, это похоже на подстановку переменных.
Вы говорите, что это формальное определение? После подстановки и просмотра обозначений экспоненты, похоже, что все это можно урезать. Кроме того, использование квантификаторов может привести к бесконечно большому числу цифр. И они нигде не учитывают пробелы, может быть, это строгий анализ чего-то.
[+-]?(([0-9]+ | ([0-9]*[\.][0-9]+) | ([0-9]+[\.][0-9]*)) [eE][+-]? [0-9]+)
[+-]? # '+' or '-' 0 or 1 time
( # group 1, not needed
( # group 2
[0-9]+ # a digit, 1 or more times
| # OR
( # group 3
[0-9]* # a digit, 0 or more times
[\.] # a '.' exactly 1 time, character class not needed
[0-9]+ # a digit, 1 or more times
) # end group 3
| # OR
( # group 4
[0-9]+ # a digit, 1 or more times
[\.] # a '.' exactly 1 time, character class not needed
[0-9]* # a digit, 0 or more times
) # end group 4
) # end group 2
[eE] # 'e' or 'E' exactly 1 time
[+-]? # '+' or '-' 0 or 1 time
[0-9]+ # a digit, 1 or more times
) # end group 1, not needed