title: Regex pattern for HH:MM:SS time string
body: <p>I want to parse a <code>hh:mm:ss</code> string.
  A simple one is <code>([0-1]?\d|2[0-3]):([0-5]?\d):([0-5]?\d)</code>  which expects <code>2:3:24</code> or <code>02:03:24</code> string. </p>
  
  <p>I want to take it a step further and pass the validation even in cases like</p>
  
  <ol>
  <li>if you enter just 56, it should be pass, as 56 can be considered as 56 secs  [SS]</li>
  <li>if you enter 2:3 or 02:03 or 02:3 or 2:03  it should pass. 2 minutes and 3 seconds [MM:SS]</li>
  <li>If you enter 20:30:12 pass with 20 hrs, 30 minutes and 12 secs [HH:MM:SS] </li>
  <li>if you enter 78:12 , do not pass  78 minutes is wrong....</li>
  </ol>
  
  <p>Basically, if one ":" is found, consider number before ":" as MM and number after ":" as SS
  . If two ":" are found consider as HH:MM:SS</p>
  
  <p>I came up with this pattern.</p>
  
  <pre><code>(^([0-1]?\d|2[0-3]):([0-5]?\d):([0-5]?\d)$)|(^([0-5]?\d):([0-5]?\d)$)|(^[0-5]?\d$)
  </code></pre>
  
  <p>It seems to be working fine. I wanted to know any other simpler regular expression, that can do the job.</p>