C ++ регулярное выражение для перекрывающихся совпадений

У меня есть строка 'CCCC', и я хочу, чтобы она соответствовала 'CCC' с перекрытием.

Мой код:

...
std::string input_seq = "CCCC";
std::regex re("CCC");
std::sregex_iterator next(input_seq.begin(), input_seq.end(), re);
std::sregex_iterator end;
while (next != end) {
    std::smatch match = *next;
    std::cout << match.str() << "\t" << "\t" << match.position() << "\t" << "\n";
    next++;
}
...

Однако это только возвращает

CCC 0 

и пропускаетCCC 1 решение, которое мне нужно.

Я читал о не жадных '?' соответствие, но я не мог заставить его работать

Ответы на вопрос(1)

Ваш ответ на вопрос