The percentage sign is not included in the index and so cannot be searched. Also, the index search does not support REGEX searching yet.
More information
When performing an index search the program searches against a database of terms, not against the source text. Those terms were extracted from the source text, and stored in the index, but not all characters would be included as a term. If you imagine some source text:
file_locator work-efficiency calculation:(normal-speed*50%)=lots
This results in the following tokens:
file_locator
work
efficiency
calculation
normal
speed
50
lots
When you search for "work-efficiency" the program translates this to "work" followed-by "efficiency", because the dash wouldn't exist in the index. The search would match "work-efficiency" but would also match "work#efficiency" or "work efficiency" etc.
How to search for non-term characters
Searching against non-term characters is not possible in index search, the characters just aren't in the index database. Therefore you need to switch to 'Expert' mode and search the source text directly, which will be slower but can be speeded up:
Help: Cache Settings
Question: Isn't cache search better than index search because I can use more search options?