class_docstr: :param string: The input string.
  :param re_matches: List of (compiled_re_pattern, re_match) tuples.
  :param group_names_to_nodes: Dictionary mapping all the re group names to the matching Node instances.
docstr: Yields `MatchVariable` instances for all the nodes having their end
  position at the end of the input string.
docstr_tok: ["Yields","`","MatchVariable","`","instances","for","all","the","nodes","having","their","end","position","at","the","end","of","the","input","string","."]
code: def end_nodes(self):
      """
      Yields `MatchVariable` instances for all the nodes having their end
      position at the end of the input string.
      """
      for varname, reg in self._nodes_to_regs():
          # If this part goes until the end of the input string.
          if reg[1] == len(self.string):
              value = self._unescape(
                  varname, self.string[reg[0] : reg[1]]
              )
              yield MatchVariable(varname, value, (reg[0], reg[1]))
  
imports: from __future__ import unicode_literals
  import re
  from six.moves import range
  from .regex_parser import Any, Sequence, Regex, Variable, Repeat, Lookahead
  from .regex_parser import parse_regex, tokenize_regex
label_desc: Use image node_id 7 for calling the Match obj's underlying member method code with example usage: obj.end_nodes() without return types