Actually with the `-o` switch, GNU `grep` returns only what it has matched. How about:
grep -oP "\w*[A-Z]+\w*" yourfile.txt
Note that this regex will match words with capital letters _anywhere_ in them, not necessarily the beginning. You should tune it to meet your needs if they differ.
As pointed out below, this might not be the most portable of solutions. A portable alternative in Perl is
perl -nE 'say $1 while /(\w*[A-Z]+\w*)/g' yourfile.txt