一个简单的正则表达式有关问题

一个简单的正则表达式问题
使用boost的regex;
如下代码:
regex Expr("(([a-zA-Z]+)=(\\d+))+");
string sTmp = "a=1b=2c=3dd=100";
smatch results;

if(regex_match(sTmp, results, Expr))
{
  ...
};

为什么results的size为3呢,只能取出dd 100? 如果我想取出所有等号两边的(key, value)对应该怎么做?
即:
a 1
b 2
c 3
dd 100

谢谢~~~

------解决方案--------------------
([a-zA-Z]+)=(\\d+)
就已经ok了吧。。。
------解决方案--------------------
第一次匹配
dd 100 后,通过results把已经匹配地字符删除,
用剩下串再匹配。
当然可能有更好查找重复匹配的方法。
------解决方案--------------------
([a-zA-Z]+)=(\\d+) 

不要使用贪婪模式