3.3.3.2 Numeric character codes

The following variations for numeric character codes are allowed. The
examples all assume the character set is ASCII.

Octal numerals preceded by a zero are taken to be an octal number. For
example, 0113 also means decimal 75. If a would-be character code
starts with a zero but contains any characters other than the digits
`0' through `7', it is invalid.

Hexadecimal "digits" preceded by `0x' or `0X' are taken to
be a hexadecimal number. Case is irrelevant. For example, 0x4b,
0X4b, 0x4B, and 0X4B all mean decimal 75. As with
octal, a would-be character code starting with `0x' and containing
any characters other than `0'--`9', `a'--`f', and
`A'--`F' is invalid.

A decimal number (consisting of more than one numeral) is itself. For
example, 75 means the character code decimal 75. As before, a
would-be character code starting with `1'--`9' and containing
any characters other than `0'--`9' is invalid.

A single digit, or a single character not in the encoding vector as a
name, is taken to represent its value in the underlying character set.
For example, K means the character code decimal 75, and 0
(the numeral zero) means the character code decimal 48 (if the machine
uses ASCII).

If the string being parsed as a character code starts with a digit, the
appropriate one of the previous cases is applied. If it starts with any
other character, the string is first looked up as a name.