NSRegularExpression

Tengo una cadena como:


?key=123%252Bf-34Fa&name=John
?name=Johon&key=123%252Bf-34Fa

Quiero obtener el valor para elkey, Uso esta NSRegularExpression(?i)(?<=key=)[.?!&]+[?=&]?? Lo que creo es que el patrón es como hacer coincidir cualquier carácter excepto "&". Pero el resultado es siempreNULL.

el valor de cada clave puede tener cualquier cosa excepto "&". Entonces, ¿cómo puedo crear la NSRegularExpression correcta? Gracias