Thank you. This is very helpful. Made changes based on this and seem to have fixed both issues.
For any others reading this, to address the situation where users enter zip+4, changed the tables to read ZIP* (eg. 90210*) that appears to address the 5 digit and the 5 digit plus anything.
For ZIPS that span more than one city name or likely city name that users may enter, eg Dallas, TX bs Irving, TX with the same zip code, we removed the city names and replaced with an asterisk (*).
May not be perfect, but much closer to the true numbers.