title: What are the differences between lazy, greedy and possessive quantifiers?
body: <p>How do the following quantifiers differ - with respect of scenarios, speed, etc.</p>
  
  <ul>
  <li><code>?</code>, <code>??</code> and <code>?+</code> all match <strong>0 or 1 times</strong>.</li>
  <li><code>*</code>, <code>*? and</code>*+` all match <strong>0 or more times</strong>.</li>
  <li><code>+</code>, <code>+?</code> and <code>++</code> all match <strong>1 or more times</strong>.</li>
  </ul>
  
  <hr>
  
  <ul>
  <li><code>?</code>, <code>*</code> and <code>+</code> are <strong>greedy</strong>.</li>
  <li><code>??</code>, <code>*?</code> and <code>+?</code> are <strong>reluctant/lazy</strong>. </li>
  <li><code>?+</code>, <code>*+</code> and <code>++</code> are <strong>possessive</strong>.</li>
  </ul>
  
  <p>Can anyone help me to understand what these terms mean? Why are there three variations of each quantifier for the same job?</p>