'Read until one from a list of a regular expressions matches.
The first argument is a list of regular expressions, either
compiled (re.RegexObject instances) or uncompiled (strings).
The optional second argument is a timeout, in seconds; default
is no timeout.
Return a tuple of three items: the index in the list of the
first regular expression that matches; the match object
returned; and the text read up till and including the match.
If EOF is read and no text was read, raise EOFError.
Otherwise, when nothing matches, return (-1, None, text) where
text is the text received so far (may be the empty string if a
timeout happened).
If a regular expression ends with a greedy match (e.g. \'.*\')
or if more than one expression can match the same input, the
results are undeterministic, and may depend on the I/O timing.'

def expect(self, list, timeout=None):

    if self._has_poll:
        return self._expect_with_poll(list, timeout)
    else:
        return self._expect_with_select(list, timeout)
