regex_token_iterator();
regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
const regex_type& re,
int submatch = 0,
regex_constants::match_flag_type m = regex_constants::match_default);
regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
const regex_type& re,
const vector<int>& submatches,
regex_constants::match_flag_type m = regex_constants::match_default);
regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
const regex_type& re,
initializer_list<int> submatches,
regex_constants::match_flag_type m = regex_constants::match_default);
template <size_t N>
regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
const regex_type& re,
const int (&submatches)[N],
regex_constants::match_flag_type m = regex_constants::match_default);
Effects: Первый конструктор инициализирует член subs для хранения единственного значения submatch. Второй конструктор инициализирует член subs для хранения копии аргумента submatches. Третий и четвертый конструкторы инициализируют член subs для хранения копии последовательности целочисленных значений, на которые указывает диапазон итератора [submatches.begin(), submatches.end()) и [&submatches, &submatches + N), соответственно.
Затем каждый конструктор устанавливает N значение 0 и position значение position_iterator(a, b, re, m). Если position это не итератор конца последовательности, конструктор устанавливает result адрес текущего совпадения. В противном случае, если любое из значений, хранящихся в subs , равно -1, конструктор устанавливает *this итератор суффикса, который указывает на диапазон [a, b), в противном случае конструктор устанавливает *this итератор конца последовательности.