¿Cómo capturar un número arbitrario de grupos en JavaScript Regexp?

Esperaría esta línea de JavaScript:

"foo bar baz".match(/^(\s*\w+)+$/)

devolver algo como:

["foo bar baz", "foo", " bar", " baz"]

pero en cambio solo devuelve la última coincidencia capturada:

["foo bar baz", " baz"]

¿Hay alguna manera de obtener todos los partidos capturados?

Respuestas a la pregunta(4)

Su respuesta a la pregunta