The ? is a metacharacter that means "match the previous character zero or one times". You need to put a backslash before it to escape it.
Probably not a problem for you in this case, but... When extracting stuff from HTML, it's often useful to use ".?" instead of ".". The question mark in that case (after a * or +) makes it "non-greedy"; it will match the smallest possible string instead of the largest possible string.