Works for me (even with the extra \s before the : and =s),
$string='http://www.sydneyroosters.com.au/surveys/display.php?FanID=126680&Email=craig@4mation.com.au&SurveyID=12';
$regexp = '{^http://www\.sydneyroosters\.com\.au/surveys/display\.php\?FanID=[^&]+?&Email=[^&]+?&SurveyID=12$}';
preg_match($regexp,$string,$m);
print_r($m);
but wouldn't [man]parse_url[/man] and [man]parse_str[/man] make things a lot simpler?