title: Difference Between '?' and '*' in regular expressions
body: <p>I am learning regular expressions to use them in lex program. I've Seen <a href="http://en.wikipedia.org/wiki/Regular_expression" rel="nofollow">here</a> that, in Regular Expressions: <br /> </p>
  
  <p><code>'*' matches 0 or more occurances of pattern</code> <br />
  <code>'?' matches 0 or 1 occurance of the pattern</code> </p>
  
  <p>By this I'm kinda Confused. I mean:<br /></p>
  
  <p><li> if we can match 0 or more by <b>'*'</b> then why should we use <b>'?'</b> meta character? </li>
  <li> We define Float as : <code>FL [0-9]*"."[0-9]+</code> </li>
  <li> Can we define it as : <code>FL [0-9]?"."[0-9]+</code> for numbers like 0.999 or .999 etc (ie, Number with only one digit before radix point <code>.</code> )? </li> </p>
  
  <p>Can Any one please explain this? Thanking you in advance :).</p>