title: Regex a: b c d a:b
body: <p>I currently have the regex <code>'([^: ]+):([^ ]+)?'</code>, which when given a string like <code>This is a correct:test msg: a b c bool:y</code> returns <code>[('correct', 'test'), ('msg', ''), ('bool', 'y')]</code> (using pythons <code>re.findall</code>). </p>
  
  <p>I actually want it to return something like <code>[('correct', 'test'), ('msg', 'a b c'), ('bool', 'y')]</code>. How do I force regex to look inside the second chunk, and see if theres a <code>:</code> in it?</p>