in reply to using grep with multiple "+"

Using quotemeta() or \Q..\E as suggested by others is the correct thing to do.

The reason your regexp was failing was the existence of too many forward slashes. Either use a different delimeter, or escape your forward slashes in your pattern:

grep m|c:/apps/c\+\+/application| => 'c:/apps/c++/application/myfile.cpp'; grep /c:\/apps\/c\+\+\/application/ => 'c:/apps/c++/application/myfile.cpp';