regex matching parsing : <p>I have this patter <code>p</code> and want to use this pattern to find if it has any matching. This is in Python.</p>

<p><code>p = "keyword" + ".*?(\d+(\.\d+)?[\s%]?[\w/]*)"
 found = re.findall(p, some_text)
</code></p>

<p>I have problem parsing this regex.</p>

<ol>
<li><p>What is the first "?". </p>

<p>I understand that ".*" matches any thing for 0  or more times. But not sure what the "?" does here.</p></li>
<li><p>It is weird to see nested capture group parenthesis. What does it do?</p></li>
<li><p>What is the "?" in <code>[\s%]?</code> regex?  I assume this is matching white space followed by "%". But not sure what the "?" does here.</p></li>
<li><p>What is the asterisk in <code>[\w/]*</code> regex? I assume this is matching any word character followed by forward slash. But not sure what the "*" does.</p></li>
</ol>
