ちょっと気になった、「良いパーツ」ではない?

JavaScript: The Good Parts』の正規表現の章で、"(?=" で始まる先読みと "(?!" で始まる否定先読みを、特に理由の説明なく「良いパーツ」ではない、としているが、どういう意図かわからなかった
たとえば Java を含むが JavaScript ではないものにすべてマッチさせたい、という時、それをそのまま /Java(?!Script)/ と書くのが素直なやりかただろう。たとえば /Java[^S]/ では他にもマッチしないものが出てくるし、とくに "Java" だけにマッチしないので /Java([^S]|$)/ としなければならない( /Java[^S]?/ では JavaScriptJava の部分にマッチした時点でマッチ全体自体は成功してしまうのでうまくない)
正規表現で下手に凝るよりも、プログラムの構成としてまず /Java/ でマッチさせ次に /JavaScript/ にマッチするものは蹴る、といった処理にしろ、ということだろうか
(この場合ループ中だと continue を使うことになるような気がするが B.4 によれば continue は「悪いパーツ」だったりするのである)