cpp/regex/regex token iterator/regex token iterator

Constructs a new :

@1@ Default constructor. Constructs the end-of-sequence iterator.

@2-5@ First, copies the list of the requested submatch out of the or  argument into the member list stored in the iterator and constructs the member std by passing, , , and  to its four-argument constructor (that constructor performs the initial call to std) and sets the internal counter of submatches to zero.
 * If, after construction, the member is not an end-of-sequence iterator, sets the member pointer to the address of the current std.
 * Otherwise (if the member is an end-of-sequence iterator), but the value  is one of the values in /, turns  into a suffix iterator pointing at the range  (the entire string is the non-matched suffix)
 * Otherwise (if -1 is not in the list of submatches), turns into the end-of-sequence iterator.

The behavior is undefined if any value in is less than.

@6@ Copy constructor: performs member-wise copy (including making a copy of the member and the member pointer to current sub_match).

@7-10@ The overloads are prohibited from being called with a temporary regex since otherwise the returned iterator would be immediately invalidated