MySQL - SQL statement to test minimum length of the word 'ft_min_word_len'
To retrieve ft_min_word_len as a query, run this:
SELECT variable_value FROM information_schema.global_variables
WHERE variable_name='ft_min_word_len';

But wait, you are asking

Why the third row is returned if there is no match for '(database|data)'

Did you know there are 543 words that are excluded from FULLTEXT indexes ?
Note the following from your query and row data...

The words will and this are in the stopword list.
The word show is not in the stopword list, so searching for show should produce a tangible result.
The word data is not in the body column as its own word. Try searching for data* or +data*

I wrote about this before and how to disable the default stopword list:

Jan 26, 2012 : Mysql fulltext search my.cnf optimization
Dec 29, 2011 : MySQL Full Text index issue

UPDATE 2013-04-25 12:26 EDT
@Michael-sqlbot has pointed out in his comment to my answer that QUERY EXPANSION does a double lookup to include &quot;near-misses&quot; due to relevance. If @Michael-sqlbot adds his comment as an answer, I will retract my answer, upvote his answer, and ask that @Michael-sqlbot's answer be accepted.