Чем больше значений вы хотите исключить, тем сложнее это будет, но
preg_match("/\bHTTP(.+) ([0-35-9]\d{2}|4[1-9]\d|40[0235-9])/", $string)
будет соответствовать любому трехзначному числу, которое не начинается с 4,
или любое трехзначное число, которое начинается с 4, но не начинается с 40,
или любое трехзначное число, начинающееся с 40, но не 401 или 404.