AFAIK, нет никакого чистого способа регулярного выражения, чтобы сделать это сразу (т.е. вернуть три захвата, которые вы запрашиваете без цикла).
Теперь вы можете найти шаблон один раз и выполнить цикл поиска, начиная со смещения (найденная позиция + 1). Следует сочетать использование регулярных выражений с простым кодом.
[РЕДАКТИРОВАТЬ] Отлично, я опущен, когда я в основном сказал то, что показал Ян ...
[РЕДАКТИРОВАТЬ 2] Чтобы быть ясным: ответ Яна лучше. Не более точный, но, конечно, более подробный, он заслуживает выбора. Я просто не понимаю, почему мое голосование понижено, так как я все еще не вижу в нем ничего неправильного. Ничего страшного, просто раздражает.