In case the difference between modes RegexIterator::MATCH and RegexIterator::GET_MATCH is not immediately clear:
MATCH will only return one value per matched element, as a string.
GET_MATCH will return as many values, per matched element, as there are sub-patterns. If there are sub-patterns, each iteration returns an indexed array with the full pattern match at 0 and each of the sub-pattern matches as another element.
If there are no sub-patterns, the behaviour of GET_MATCH is the same as MATCH.