title: greedy block ()* contains wildcard
body: <p>I am building a grammar in <code>ANTLR4</code>, and I am getting this warning </p>
  
  <p><code>TL4.g4:224:12: greedy block ()* contains wildcard; the non-greedy syntax ()*? may be preferred</code></p>
  
  <p>Here is the line of code it is referring to </p>
  
  <pre><code>block
      : ( statement | functionDecl )* (Return expression ';')?
      ;
  </code></pre>
  
  <p>What does the warning mean, How can I correct it ?</p>