rfc3986の付録Bに
URIを解析する正規表現としてこんなのが載っています

^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?
これをJavaに移植したいんですが
どの文字をエスケープすればいいのかわかりません

"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?"
今これでやってるのですが、URLに"が含まれていても解析できてしまうので
どこか間違ってるみたいです
どなたか教えてもらえないでしょうか