制御文字は、さらに別の読み取り構文を用いて表現できます。これは、疑問符に続き、バックスラッシュ、キャレット、および対応する非制御文字(大文字または小文字)を並べたものです。例えば、‘?\^I’と‘?\^i’はいずれも、値が9である文字C-iに対する有効な読み取り構文です。
‘^’の代わりに‘C-’を使用できます。したがって、‘?\C-i’は‘?\^I’および‘?\^i’と同等になります:
?\^I ⇒ 9 ?\C-I ⇒ 9
文字列やバッファで許可される制御文字は、ASCIIに含まれるものに限られますが、キーボード入力においては、‘C-’を用いることで任意の文字を制御文字に変換できます。これらの非ASCII制御文字の文字コードには、2**26ビット分に加え、対応する非制御文字のコードも含まれています。すべてのテキスト端末で非ASCII制御文字を生成できるわけではありませんが、Xやその他のウィンドウシステムを用いれば容易に生成可能です。
歴史的な経緯により、EmacsではDEL文字を?の制御文字相当として扱います:
?\^? ⇒ 127 ?\C-? ⇒ 127
その結果、X では意味のある入力文字である Control-? を ‘\C-’ で表現することは現状では不可能です。さまざまな Lisp ファイルがこのように DEL を参照しているため、これを変更するのは容易ではありません。
ファイルや文字列に含まれる制御文字を表すには、‘^’ 構文を推奨します。キーボード入力における制御文字には、‘C-’ 構文を好んで使用します。どちらを使用するかはプログラムの意味に影響しませんが、読み手の理解を助ける可能性があります。