/// \param begin The beginning of the character range to search.
 /// \param end The end of the character range to search.
 /// \param rex The regex pattern to search for.
 /// \pre \c [begin,end) is a valid range.
 regex_token_iterator
 (
     BidiIter begin
   , BidiIter end
   , basic_regex<BidiIter> const &rex
 )
   : impl_()
 {
     if(0 != rex.regex_id())
     {
         this->impl_ = new impl_type_(begin, begin, end, begin, rex);
         this->next_();
     }
 }
 regex_token_iterator
 (
     BidiIter begin
   , BidiIter end
   , basic_regex<BidiIter> const &rex
   , Subs const &subs
   , regex_constants::match_flag_type flags = regex_constants::match_default
 )
   : impl_()
 {
     if(0 != rex.regex_id())
     {
         this->impl_ = new impl_type_(begin, begin, end, begin, rex, flags, detail::to_vector(subs));
         this->next_();
     }
 }
 regex_token_iterator
 (
     BidiIter begin
   , BidiIter end
   , basic_regex<BidiIter> const &rex
   , detail::let_<LetExpr> const &args
 )
   : impl_()
 {
     if(0 != rex.regex_id())
     {
         this->impl_ = new impl_type_(begin, begin, end, begin, rex);
         detail::bind_args(args, this->impl_->iter_.what_);
         this->next_();
     }
 }