Hola otra vez:
Si quieres estar seguro de no encontrar más de un carácter "?", puedes obtener la cadena de entrada así:
entrada = location.search.substr(1);
y luego dividirla con entrada.split("&")... pero si hay más "?" por recibir uri's con parámetros, esas direcciones deberían tener solo un parámetro... si no sería difícil saber los parámetros de cada dirección (eso lo pregunté yo también hace algunos meses)
Tal vez esté un poco liado...
Sobre la expresión regular, sé que está bien definida... se entrecomilla cuando se usa como parámetro de regExp (creo que es así el constructor)... pero es un tema en el que poco puedo ayudarte
Saludos