catch ParseException, print an error message, and continue
fixed regex ordering and changed some Ors to MatchFirst (as or takes the longest match, which means we were often matching IPs as hostnames), all tests now pass