关于qt 正则表达式的有关问题

关于qt 正则表达式的问题
有下面一段正则语句的代码:
 QString str3 = "One Eric another Eirik, and an Ericsson. "
                   "How many Eiriks, Eric?";
    QRegExp rx2("\\bEi?ri[ck]\\b");          
    int pos = 0;
    int count = 0;
    while (pos >= 0) {
        pos = rx2.indexIn(str3, pos);
        if (pos >= 0) {
            ++pos;      // 从匹配的字符的下一个字符开始匹配
            ++count;    // 匹配到的数目加1
        }
    }
    qDebug() << "count: " << count;  
我没看懂红色标注的语句,一些简单的正则语句还能看懂,这个就不理解了,希望高手详细解答下,谢谢了啊。              
正则表达式

------解决方案--------------------
QRegExp rx2("\\bEi?ri[ck]\\b"); 
\\b表示单词的界限,?表示可以出现0次或是1次,这个正则应该表示匹配的是如下几个单词中的一个:
Eric、Eiric、Eirik、Erik
具体参考QT的totorial吧,我没查文档
------解决方案--------------------
QRegExp rx2("\\bEi?ri[ck]\\b");    

? 表示 可以有或者没有
[] 表示里面的可选