Pandoc doesn’t seem to have any trouble. That example is after all what Pandoc supports. If I remember correctly it’s the line that separates the header from regular rows that is key. But to be sure take a look at the Pandoc docs.
The human eye sees a table because it sees the vertical columns of white space that delineate table columns, much like it sees horizontal lines of white space (i.e. blank lines). I’ve been working on a parser that does the same. Turns out it isn’t that hard, no AI needed: simply treat any vertically aligned white space that is 2 or more characters wide as a column delimiter.
The human eye perceives blank columns much like it perceives blank lines.