Esta expressão regular corresponderá a comentários HTML
Em particular:
<!-- matches literal string "<!--"
. matches any character
* is a quantifier, it means "0 or more" of the previous character
? makes the regex non-greedy, so it matches as few times as possible
--> matches literal "-->"
Então, seu regexp contra este texto:
blah <!-- first --> yaddahyaddah <!-- second --> other random words.
corresponderá apenas a <!-- first -->
.
Veja link
Sem o? corresponderia tudo entre a primeira ocorrência de <!--
e a% final-->
, em outras palavras, corresponderia: <!-- first --> yaddahyaddah <!-- second -->
Veja link