def scan(self, string):
<EOL>w = (constraint.words for constraint in self.sequence if not constraint.optional)<EOL>w = itertools.chain(*w)<EOL>w = [w.strip(WILDCARD) for w in w if WILDCARD not in w[<NUM_LIT:1>:-<NUM_LIT:1>]]<EOL>if w and not any(w in string.lower() for w in w):<EOL><INDENT>return False<EOL><DEDENT>return True<EOL>
Returns True if search(Sentence(string)) may yield matches.
            If is often faster to scan prior to creating a Sentence and searching it.