If the most recent match was not a zero-length match, the operator sets
flags to flags | regex_constants::match_prev_avail and
calls regex_search(start, end, match, *pregex, flags).
If the call returns
false the iterator sets *this to the end-of-sequence iterator.
In all cases in which the call to regex_search returns true,
match.prefix().first shall be equal to the previous value of
match[0].second, and for each index i in the half-open range
[0, match.size()) for which match[i].matched is true,
match.position(i)
shall return distance(begin, match[i].first).
This means that match.position(i) gives the
offset from the beginning of the target sequence, which is often not
the same as the offset from the sequence passed in the call
to regex_search.
This means that a compiler may call an
implementation-specific search function, in which case a user-defined
specialization of regex_search will not be
called.