[1] B 互換性 (Compatibility) ( 版) <http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/B_Compatibility.html#section-B.1.2>
[2] >>1 に従えば \069 みたいなのは八進数のエスケープではないことになってしまいますが、 ブラウザで試してみると \06 + 文字 9 として処理されます。
[3] () が8個ないときの \8 の解釈
WinIE 7、Safari、Chrome: U+0038
DIGIT EIGHT
Firefox 3: U+005C
REVERSE SOLIDUS
,
U+0038
DIGIT EIGHT
どのブラウザでも U+0038
DIGIT EIGHT
[5] ES3 によれば \n で n が () の数より多いと SyntaxError ですが (15.10.2.9 の算法、または 15.10.2.11 の informative note)、 実際にはどのブラウザでも八進エスケープとして解釈されます。
[6] ちなみに Perl ではエラーになります。 ES3 には正規表現内の () の数が、という風に書かれていて、そこより前、とは言っていません。 Perl でも、 /\5((((()))))/ のように括弧が後から出てきてもエラーにはなりません。
ES3 によれば \0 以外は SyntaxError ですが、実際にはどのブラウザでもエスケープとして解釈されます。
\1 <http://software.hixie.ch/utilities/js/live-dom-viewer/?%3Cscript%3E%0D%0Adocument.write%20(%22a%5Cx01%22.match(%2F(a)%5B%5C1%5D%2F)%3F1%3A0)%3B%0D%0A%3C%2Fscript%3E>: どのブラウザでも U+0001 として解釈されます。
\8
<http://software.hixie.ch/utilities/js/live-dom-viewer/?%3Cscript%3E%0Adocument.write%20(%22a8%22.match(%2F(a)%5B%5C8%5D%2F)%3F1%3A0)%3B%0A%3C%2Fscript%3E>:
Opera 以外では U+0038
と、
Opera では U+0008
と解釈されます。
U+0038
とだけみなされます。