エスケープ

エスケープ・シーケンス (正規表現)

[6] ES3 によると正規表現中の \ の後に1文字続けてその文字自体を表現できるのは、 その文字IdentifierPart に含まれない場合だけのはずです。

<http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/15-10_RegExp_Objects.html#IdentityEscape>

つまるところ、 \X や \A のような未定義のエスケープや、文字クラス内で使えない \B のようなエスケープは、エラーになるはずです。しかし、実際にはブラウザはこれらも2文字目を表すエスケープと解釈するみたいです。

ES3 通りの解釈にしたら、 \$ で $ を表すこともできなくなってしまいます。 というかほとんどの文字が escape できなくなってしまいます。おかしくないですか?

[7] \x\c\u八進数エスケープの項も参照。

[8] 末尾に \ がくるのはどのブラウザでも構文エラーになるみたいです。