Add 'Products.PloneTestCase' to the 'test' extra requirements.
first word only: only keep list of found lowercased words.

Otherwise we find the first two words: once for checking the uppercase and once for lowercase.
Split the check for first_word_only.

If a match has already been found, we can avoid a search.
Fix: first word is now found instead of second word.