Pros:
- it is convenient to type and read numbers this way;
- Ada, Perl, C++, Go and Rust already support that;
- can support thousands as well as lakhs and crores;

Cons:
- standard SQL does not have this support;
- PostgreSQL treat `SELECT 1_000_000` as number one with `_000_000` alias: http://sqlfiddle.com/#!17/0a28f/400
- C++ has `1'000'000` instead of `1_000_000`;

What do you think?

pos += 2;
                }
                else
                    ++pos;
                while (pos < end && (hex ? isHexDigit(*pos) : isNumericASCII(*pos)))
                    ++pos;
                
                if (pos < end && *pos == '.')
                {
                    ++pos;
                    while (pos < end && (hex ? isHexDigit(*pos) : isNumericASCII(*pos)))
                        ++pos;
                }
                
                if (pos + 1 < end && (hex ? (*pos == 'p' || *pos == 'P') : (*pos == 'e' || *pos == 'E')))
                {
                    ++pos;
                    
                    if (pos + 1 < end && (*pos == '-' || *pos == '+'))
                        ++pos;
                    while (pos < end && isNumericASCII(*pos))
                        ++pos;
                }
            }
            
            if (pos < end && isWordCharASCII(*pos))
            {
                ++pos;
                while (pos < end && isWordCharASCII(*pos))
                    ++pos;