title: Regex find all occurrences of a pattern in a string
body: <p>I have a problem finding all occurences of a pattern in a string.</p>
  
  <p>Check this string :</p>
  
  <pre><code>string msg= "=?windows-1258?B?UkU6IFRyIDogUGxhbiBkZSBjb250aW51aXTpIGQnYWN0aXZpdOkgZGVz?= =?windows-1258?B?IHNlcnZldXJzIFdlYiBHb1ZveWFnZXN=?=";
  </code></pre>
  
  <p>I want to return the 2 occurrences (in order to later decode them):</p>
  
  <p><code>=?windows-1258?B?UkU6IFRyIDogUGxhbiBkZSBjb250aW51aXTpIGQnYWN0aXZpdOkgZGVz?=</code></p>
  
  <p>and</p>
  
  <p><code>=?windows-1258?B?IHNlcnZldXJzIFdlYiBHb1ZveWFnZXN=?="</code></p>
  
  <p>With the following regex code, it returns only 1 occurrence: the full string.</p>
  
  <pre><code>var charSetOccurences = new Regex(@"=\?.*\?B\?.*\?=", RegexOptions.IgnoreCase);
  var charSetMatches = charSetOccurences.Matches(input);
  foreach (Match match in charSetMatches)
  {
      charSet = match.Groups[0].Value.Replace("=?", "").Replace("?B?", "").Replace("?b?", "");
  }
  </code></pre>
  
  <p>Do you know what I'm missing?</p>