. - означает любой символ.
* - означает любое количество екземпляров предшествующего елемента (в том числе и нулевое).
(\d*) - означает захватить групировку из любого количества цифр.
(?:.*) - не захватывать групировку (символы могут быть сдесь любыми, на что указывает
.*)
.*? - вопросительный знак сдесь это
лекарство от жадности. Вот посмотри пример, и подумай в чем разница:
Код:

;Пример 1
$1=StringRegExpReplace("текст 1234 текст 5678 текст",".*? (\d\d\d\d).*","\1")
;Пример 2
$2=StringRegExpReplace("текст 1234 текст 5678 текст",".* (\d\d\d\d).*","\1")
MsgBox(0,"Пример", "1 случай: "&$1&@CRLf&"2 случай: "&$2)