Emacs - expressões regulares no Lisp precisam ser escapadas duas vezes - por qu

Eu andei brincando com o emacs lisp e queria escrever uma pequena função para fazer uma pesquisa e substituição de expressões regulares. Demorou um pouco para que a expressão regular funcionasse corretamente porque não percebi que todos os caracteres especiais precisam ser escapados duas vezes ao escrever o código lisp (mas não ao usar o query-replace-regexp interativamente!).

or exemplo, usando query-replace-regexp interativamente, você pode usar

^\(.*\)[\t]-.*$

mas, ao escrever o código elisp, você precisa escapar duas vezes assim:

^\\(.*\\)[\t]-.*$  

Finalmente encontrei uma referência a isso em um Steve Yeggeartig, mas eu queria saber se alguém sabia por que isso é?

questionAnswers(4)

yourAnswerToTheQuestion