Positive lookahead assertion and .* sign in python
<p>I have the following regular expression:</p>

<pre><code>passw = re.compile(r'^(?=.*\d)(?=.*[A-Z])(?=.*[\$|\?\!])[A-Za-z\d$!&amp;]{8}$')
</code></pre>

<p>which I can interpret as string of length 8, which must contain at least one number, one big letter and one of characters($?!). And also consists only of numbers, letters and $?!.</p>

<p>?= - this symbol is known as lookahead assertion:  For example, <code>Isaac (?=Asimov)</code> will match <code>'Isaac '</code> only if it’s followed by 'Asimov'.</p>

<p>But how can we interpret <code>.*</code> sign? What does it mean in regex?
Can we avoid it in this situation?</p>