What about:
COPY ... FROM ... WITH PATTERN 'regexp_pattern'
Where the columns would be matched with the capture groups.
This could handle the quite common case of varying white-space as column separators:
COPY log (col1, col2, col3) FROM 'log.txt' WITH PATTERN '^(\S+)\s+(\S+)\s+(\S+)$'
This could also handle $SUBJECT:
COPY table_name (single_column) FROM 'unknown.txt' WITH PATTERN '^(.*)$';
And lots of other more complex use-cases.
/Joel