この JavaScript の正規表現
var foo = RegExp("^https?:\/\/(\w+\.)*youtube\.([a-zA-Z0-9])+");
次のような文字列に一致します: [以下のステートメントは true を返します]
foo.test("http://www.youtube.com");
foo.test("https://www.youtube.com");
foo.test("http://youtube.com");
ただし、式が次の場合、同じテストは失敗します。
var foo_fail = RegExp("^https?:\/\/(\w+\.)*youtube\.\w+");
この RegExp は上記のテストに合格しているはずですが、次のように表示されます。chrome/firebug コンソールでは false を返します。これは true を返すはずでした。この表現で何が間違っていますか?
同様の式を perl で実行すると、期待どおりの一致が返されます。