? で始まるリンクを正しく扱えてない

function pathToURL(url, path) {
    var s
    console.log([url, path])
    if (path.match(/^\//)) { // absolute?
        s = url.replace(/^([a-z]+:\/\/.*?)\/.*$/, '$1')
+    } else if ( path.match(/^\?/) ) {
+        s = url.replace(/([^#]+?)(\?.*)?(#.*)?$/, '$1')
    } else {
        s = url.replace(/^(.*\/).*$/, '$1')
    }
    console.log(s+ path)
    return s + path
}
var expected = [
"http://friendfeed.com/ku0522?num=30&start=30",
"http://friendfeed.com/ku0522?num=30&start=30",
"http://friendfeed.com/ku0522?num=30&start=30",
"http://friendfeed.com/ku0522/?num=30&start=30"
];
[
"http://friendfeed.com/ku0522?num=30&start=30#mockmock?",
"http://friendfeed.com/ku0522?",
"http://friendfeed.com/ku0522#p?",
"http://friendfeed.com/ku0522/"
].map(function(u,i) {return (pathToURL(u, "?num=30&start=30") == expected[i]) } );

よろしくおねがいします。

補足

Twitter / Shogo Ohta: AutoPagerizeのpathToURLが良く理解...

これでもやっぱり ../ とか ./ ではじまるとだめなので誰か直して!