Uzyskaj indeks każdego przechwycenia w wyrażeniu regularnym JavaScript

Chcę dopasować wyrażenie regularne/(a).(b)(c.)d/ z"aabccde"i uzyskaj następujące informacje:

"a" at index = 0
"b" at index = 2
"cc" at index = 3

Jak mogę to zrobić? String.match zwraca listę dopasowań i indeks początku pełnego dopasowania, a nie indeks każdego przechwycenia.

Edycja: przypadek testowy, który nie działałby ze zwykłym indexOf

regex: /(a).(.)/
string: "aaa"
expected result: "a" at 0, "a" at 2

Uwaga: pytanie jest podobne doRegex Javascript: Jak znaleźć indeks każdego podwyrażenia?, ale nie mogę modyfikować wyrażenia regularnego, aby każde podwyrażenie było grupą przechwytującą.

questionAnswers(6)

yourAnswerToTheQuestion