'Attempts to find the next subsequence in the searched sequence on or after index
that represents a phone number. Returns the next match, None if none was found.
Arguments:
index -- The search index to start searching at.
Returns the phone number match found, None if none can be found.'

def _find(self, index):

    match = _PATTERN.search(self.text, index)
    while ((self._max_tries > 0) and (match is not None)):
        start = match.start()
        candidate = self.text[start:match.end()]
        candidate = self._trim_after_first_match(_SECOND_NUMBER_START_PATTERN, candidate)
        match = self._extract_match(candidate, start)
        if (match is not None):
            return match
        index = (start + len(candidate))
        self._max_tries -= 1
        match = _PATTERN.search(self.text, index)
    return None
