>>106508374
Hit them with Haskell:
import Text.Parsec
main = sequence_ $ fmap (\x -> putStrLn $ x ++ " => " ++ validate x)
[ "0", "e", "."
, "2", "0089", "-0.1", "+3.14", "4.", "-.9", "2e10", "-90E3", "3e+7", "+6e-1", "53.5e93", "-123.456e789"
, "abc", "1a", "1e", "e3", "99e2.5", "--6", "-+3", "95a54e53" ]
validate = either (const "false") (const "true") . parse validNum "" where
validNum = do
optional $ oneOf "-+"
choice . fmap try $ [ many1 digit *> char '.' *> many digit
, char '.' *> many1 digit
, many1 digit ]
optional $ oneOf "eE" *> optional (oneOf "-+") *> many1 digit
eof