If you set up a query with -mode => 'advanced_text' and -whole => 1, search keywords containing non-word characters don't match.
e.g. if you search for 'C++' with -whole => 1 it won't match 'C++' in the query text.
I think I tracked the problem down to BuildAdvancedString.pm ~line 94 where search keywords are enclosed with \b<word>\b when -whole is switched on.
Since the '+' symbol is recognised as a word boundary by \b, C++ can never be matched. You might be able to solve this by using a \W instead of \b?