'Return the next match; raises Exception if no next match available'

def next(self):

    if (not self.has_next()):
        raise StopIteration('No    next    match')
    result = self._last_match
    self._last_match = None
    self._state = PhoneNumberMatcher._NOT_READY
    return result
