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.
If I understand it raise a error when it found more than one table
I hope not, and that totally was not my intent :-p
It should raise if it found *less than* one, that is: none.