I think this is a bit over-engineered (apart from the fact that processSQLNamePattern is also used in two dozen of places in psql/describe.c and all of them must be touched for this patch to compile).
it was prototype - I believe so issue with describe.c can be solved better
Also, the new --table-if-exists options seems to be doing what the old --table did, and I'm not really sure I underestand what --table does now.
I propose instead to add a separate new option --strict-include, without argument, that only controls the behavior when an include pattern didn't find any table (or schema).
hard to say - any variant has own advantages and disadvantages
But I more to unlike it than like - it is more usual, when you use exact name so, you need it exactly one, and when you use some wildcard, so you are expecting one or more tables.
This use case is not checked in your patch.
Maybe I'm missing something, but I believe it's handled by
pg_dump -t mytables* --strict-include
so that it will error out if nothing was found for mytables* pattern.