In the ASCII table, punctuation characters appear between the non-printing characters and before the numbers (!"#$%&')*+,-./
), between the numbers and the uppercase letters (:;<=>?@
), between the uppercase letters ([\]^_`
) and the lowercase letters, and after the lowercase letters ({|}~
).
On first glance, one would expect these to be grouped together; possibly either before all alphanumerical characters or behind them. But this is not the case; they apprear spread out in these different groups.
Why is this the case? Is there some (possible historical) reason why the characters are grouped this way?