Ich kenne mich mit Regex in Javascript nicht wirklich aus, aber es sieht so aus, als ob Du immer wieder den selben Teilstring findest - was auch logisch erscheint, wenn Du immer wieder mit demselben Regex im selben String suchst.
Vermutlich möchtest Du die Suche (also das exec) nur einmal aufrufen und danach die Schleife über die Ergebnisse laufen lassen (sprich: über die Indices des Arrays result).
weil match ein object zurück gibt und kein wirkliches array!
die anwendung mit while ist so laut selfhtml.
ein anderes beispiel funktioniert!