That Regex seems to work okay for me. I get both matches.

c# Code:
  1. string str = "hi my name is <#name#> and I like <#userLikes#>";
  2. string exp = "<#(.*?)#>";
  3. MatchCollection matches = Regex.Matches(str, exp);
  4.  
  5. foreach (Match m in matches)
  6. {
  7.     MessageBox.Show(m.ToString());                
  8. }