Просто сделайте как десятичную точку, так и часть E-then-exponent необязательной:
[1-9][0-9]*\.?[0-9]*([Ee][+-]?[0-9]+)?
Я не понимаю, почему вы не хотите, чтобы ведущая [+-]?
фиксировала возможный знак тоже, но, что угодно! -)
Редактировать: на самом деле не может быть цифр слева от десятичной точки (в этом случае я полагаю, что должен быть десятичной точкой и 1+ после этого!), поэтому необходима вертикальная шкала (альтернатива):
(([1-9][0-9]*\.?[0-9]*)|(\.[0-9]+))([Ee][+-]?[0-9]+)?