return a number parsed from the contents of string, or a part of it.
from and to specify the part of the string; to = nil means the end of it.
radix defaults to decimal.
if the string or part doesn't start with a number, nil is returned.
the second value is the index in string of the first non-digit, or nil if none.
fail-if-not-whole-string means return nil and 0 unless the whole string or
specified part can be parsed as a number.