Q:

Regex isn't replacing all of the requested characters

Currently, given the string to manipulate is abXYabcXYZ, I want to remove anything that isn't "abc", all together.  My regex command is like so:
[^abc]

which returns ab++abc+++, when I need to to return ++++abc+++.  If I use the same string to manipulate, but only replace anything that isn't "ab", I'll get ab++ab++++, which is correct.  How do I make it so the first test won't add in the ab, when it's missing the c? 

A:

As explained by NullUserException ఠ_ఠ, the regular expression [^abc] means any single character that's not a, b or c.
Using this regular expression to perform replacement on ab++abc+++ will only replace + (+ is [^abc]) to + (I think you're replacing [^abc] to +) resulting that the string remains the same. 
As for the second situation, I suppose that you want to use a regular expression [^ab], which will match the characters c and + and get the result ab++ab++++. 
That explains why you've got that.  I don't really know whether there is any regular expression that matches both \w+ and not a specific string like abc.  And in some situation you can achieve this by replace abc to another string which is not a character such as %, and replace all \w to +, and then replace % back to abc. 
Hope that it is helpful.