title: Regex stop at first occurrence
body: <p>I have a string like so <code>{!Hello} there, {!World}</code>. I need to match <code>{!Hello}</code> and <code>{!World}</code> and I have my regex like so</p>
  
  <pre><code>$text = '{!Hello} there, {!World}';
  preg_match_all("/\{\!.+\}/",$text,$var);
  </code></pre>
  
  <p>The problem is it matches the whole thing from beginning to end. That obviously means it's not stopping at the first occurrence of <code>}</code> but rather the last one. How can I match those?</p>
  
  <p><strong>EDIT</strong>: Forgot to mention I can't use \w+ because the word in between the brackets may contain special characters. IT may be something like <code>{!Email__email@some.domain__IsInvalid}</code>. I need to match this whole thing</p>