Reading the ASCII table
ASCII (American Standard Code for Information Interchange) assigns the numbers 0 to 127 to 128 characters. It was published as ANSI X3.4 in 1963, revised in 1968, and documented for the internet in RFC 20 (1969). Every row in the table is one number written four ways: decimal, hexadecimal, octal and 8-bit binary. The letter A, for example, is 65 decimal, 0x41 hex, 101 octal and 01000001 binary.
The layout is deliberate. Digits 0–9 are 48–57, so subtracting 48 (or '0') from a digit character gives its value. Uppercase letters start at 65 and lowercase at 97, exactly 32 apart, so flipping bit 5 (0x20) switches case; that is why c | 0x20 lowercases an ASCII letter. Holding Ctrl in a terminal clears bits 5 and 6, which is how Ctrl+C becomes 3 (ETX) and Ctrl+[ becomes 27 (ESC).
Search accepts a typed character, a decimal number, 0x hex, \ octal, 0b binary, a control abbreviation such as LF, a C escape such as \n, an HTML entity, or part of a name.