Support years < 1 AD and > 9999 AD
PostgreSQL supports 4713 BC - 294276 AD, but as we use regexes that only look for 4 digit years (ISO says left pad with 0s to 4 digits), we can't currently support BC (you use a leading -) or years after 9999. We could update all the regexes to allow us.
Noting that to create dates prior to 1 AD in PostgreSQL you need to use 1000-01-01 BC, not ISO 8601 style which is -1001-01-01 (-1001 because 0 -1 BC).