私は emacs lisp をいじっていて、正規表現の検索と置換を行う小さな関数を書きたいと思っていました。Lispコードを書くときにすべての特殊文字をダブルエスケープする必要があることに気づいていなかったので、正規表現を正しく機能させるのにかなりの時間を費やしました(ただし、query-replace-regexpをインタラクティブに使用するときはそうではありません!)。
たとえば、 query-replace-regexp をインタラクティブに使用すると、
^\(.*\)[\t]-.*$
しかし、elispコードを書くときは、次のようにすべてをダブルエスケープする必要があります:
^\\(.*\\)[\t]-.*$
Steve Yegge の記事でこれへの言及をようやく見つけましたが、これがなぜなのか知っている人がいるのだろうかと思っていました。