正则表达式为什么匹配不到Group(3)?解决方法

正则表达式为什么匹配不到Group(3)?
C/C++ code
bool TestRegex(char *lpLink)
{
    string strLink(lpLink);
    static CRegexpT<char> rgxField("event:(.*)\\|(\\d+)\\|(.*)", IGNORECASE);
    MatchResult matchresult = rgxField.Match(strLink.c_str());
    bool bRet = matchresult.IsMatched()!=0;

    if(bRet)
    {
        printf("TestRegex MaxGroupNumber=%d:\n",matchresult.MaxGroupNumber());
        for(int i=1;i<matchresult.MaxGroupNumber();i++)
        {
            int nStart = matchresult.GetGroupStart(i);//event:release|2|
            int nEnd = matchresult.GetGroupEnd(i);

            string strType = strLink.substr(nStart, nEnd-nStart);
            printf("%s\n",strType.c_str());
        }
    }

    return bRet;
}

TestRegex("event:release|4|9a631c7d-5c54-43e0-99a6-76f89bf7910e|80709283-ee51-45ef-9b20-a46ef4d1a570");


我用"event:(.*)\\|(\\d+)\\|(.*)"为什么匹配不到"event:release|4|9a631c7d-5c54-43e0-99a6-76f89bf7910e|80709283-ee51-45ef-9b20-a46ef4d1a570"  
的Group(3)呢?要怎么解决?我用的是跨平台的deelx正则库

------解决方案--------------------
"event:([^|]*)\\|(\\d+)\\|([^|]*)\\|([^|]*)"
------解决方案--------------------
被 .*坑过多次,于是再不敢用 .*了