The set-macro-character function allows the programmer to modify the readtable. We’ve talked a bit about modifying the readtable before, in the article on get-dispatch-macro-character. For a simple example of the use of this function, see the earlier article on eval-when.
There’s not much else to mention here, apart from explaining the difference between a terminating and non-terminating macro character. One of the optional arguments to set-macro-character allows the programmer to declare that the macro character is non-terminating. A non-terminating macro character that appears in the middle of a token does not end the token, it only has its special readtable behaviour when it appears at the beginning of a token. A terminating macro character, conversely, cannot appear as part of a token, because it performs its action when encountered, even inside a symbol name.