Regex para extraer pares clave-valor separados por espacio, con espacio en valores

Supongamos una cadena de una línea con varios pares de valores clave consecutivos, separados por un espacio, pero con un espacio permitido también dentro de los valores (no en las claves), por ejemplo

key1=one two three key2=four key3=five six key4=seven eight nine ten 

La extracción correcta de los pares clave-valor de arriba produciría las siguientes asignaciones:

 "key1", "one two" "key2", "four" "key3", "five six" "key4", "seven eight nine ten" 

donde “keyX” puede ser cualquier secuencia de caracteres, excluyendo el espacio.

Intentando algo sencillo, como

 ([^=]+=[^=]+)+ 

o variaciones similares no son adecuadas.

¿Existe una expresión regular para manejar completamente dicha extracción, sin procesamiento adicional de cadenas?