The * and : are linked together. So if the question is not mandatory it removes the :. Also note that when you put a ? proper grammar says you should not have a : after it. I would totally remove the : and the person creating the form can add it.
Also I tried using the regular expression ^[a-zA-Z0-9\s]+$ which i use to restrict on user names of people who register on my forum. This only allows normal english and numbers.
I get this error
Code:
Warning: preg_match() [function.preg-match]: No ending delimiter '^' found in [path]/misc.php(97) : eval()'d code on line 596