It's down to string processing: "\s" is the string you need in the regex, but it is being interpreted as a control code by the C# compiler. Replace it with "\\s" and it should be fine:
Match m = Regex.Match(file, "<h1 class=\"header\"> <span class=\"itemprop\" itemprop=\"name\">\\s*(.+?)\\s*</span>");
(You could prefix the string with and '@' character, but then you would have to double up all the quotes, and remove the backslashes before them...)