As OriginalGriff states, this isn't the best target for a regular expression. The regular expression you are trying to put together here allows you to do things like a_ == b_ which might not be exactly what you want. It also limits you to two character variable names.
Rather than trying to twist the regular expression and bend your brain into uncomfortable shapes in the process, I'd advise you to consider using an alternate technique such as a lexical analyser. There are several freely available lexical analysers, but the one people seem to gravitate towards is
ANTLR[
^].
Alternatively, you could really go the whole hog and create your own DSL (Domain Specific Language). Microsoft has examples of how to do this in the Visual Studio SDK.
[Edit for OP]
An alternative method would be to roll your own quick and dirty parser. Basically, you'd strip out any spaces then search for the first none alphanumeric character (that wasn't an underscore); this would be the start of your comparison operator. Then, you'd search for the first alpha-numeric (or underscore) character. At this point, you have the indices of where the variables are, and where the operator is.