Consulta de casos degenerados de cadena

Estoy buscando una expresión regualr correcta para validar cadenas de consulta URI. Encontré algunas respuestasaquí oaquí pero todavía tengo dudas sobre los casos extremos, donde la clave o el valor podrían estar vacíos. Por ejemplo, ¿deberían tratarse las siguientes cadenas de consulta válidas?

?&&
?=
?a=
?a=&
?=a
?&=a

Respuestas a la pregunta(1)

Su respuesta a la pregunta