Najlepszy sposób na przechowywanie grup przechwytujących JS Regex w macierzy?

Dokładnie o jaki tytuł chodzi. Podam kilka przykładów, wyjaśniając moje pytanie.

Ciąg testowy:

var test = "#foo# #foo# bar #foo#";

Powiedz, chcę wyodrębnić cały tekst między# (wszystkofoos ale niebar).

var matches = test.match(/#(.*?)#/g);

Za pomocą.match jak powyżej, zapisze wszystkie mecze, ale po prostu wyrzuci grupy przechwytujące, jak się wydaje.

var matches2 = /#(.*?)#/g.exec(test);

The.exec metoda najwyraźniej zwraca tylko dopasowany ciąg pierwszego wyniku w pozycji0 tablicy i moja jedyna grupa przechwytująca tego meczu w tej pozycji1.

Wyczerpałem SO, Google i MDN szukając odpowiedzi bezskutecznie.

Tak więc moje pytanie brzmi, czy jest lepszy sposób na przechowywanie tylko dopasowanych grup przechwytujących niż zapętlenie.exec i wołaniearray.push przechowywać przechwycone grupy?

Moja oczekiwana tablica dla powyższego testu powinna być:

 [0] => (string) foo
 [1] => (string) foo
 [2] => (string) foo

Czyste odpowiedzi JS i jQuery są akceptowane, dodatkowe pliki cookie, jeśli wysyłasz JSFiddleconsole.log. =]

questionAnswers(5)

yourAnswerToTheQuestion