Within a character class (the [] stuff), if you put a caret (^) as the first character, it inverts its meaning. But then you have to deal with your doublequotes. It might be best to deal with them separately somehow.

Here's the last one you said worked correctly backwards:
^([\w\s,/\-\.\+:@#]|'')+$
Let's see. You want to allow letters, numbers, underscores, whitespace, slashes, backslashes, hyphens, periods, plusses, colons, at-signs, hashes, and two-character doublequotes, but nix everything else.

How about
s/"//g

s/''/"/g
s/[^\w\s,/\-\.\+:@#"]//g
s/"/''/g
That'll convert all of your double quotes to doublequotes, kill everything you don't want except doublequote characters, then convert doublequotes back into double quotes. The first line is to get rid of any doublequote characters first so that they don't get mistakenly translated to double quotes.

There are probably other ways to do it, but that seems the most readable.
_________________________
Bitt Faulk