結論から言うと、正規表現で以下の指定をすることで、ソースコード中の変数名を完全一致で検索できます。
(javaの場合を想定しています。また、ソースは適切にインデントされ、文頭に変数名が存在しない(左側にスペースを全く入れずに変数名を記述するということはない)という前提です。)
[^a-zA-Z0-9_\$]hoge[[^a-zA-Z0-9_\$]|\r\n|\n]
【解説】
・「a-zA-Z0-9_\$」は「英数字・アンダーバー・ドルマーク」という意味です。
英数字・アンダーバー・ドルマークは、javaの変数名で使用可能な文字です。
これを[^...](否定)で囲むことで、
検索文字列の前後にjavaの変数名で使用可能な文字が存在しないか、
つまり変数名を完全一致で検索することが可能になります。
・これだけだと、変数名が文末に存在するケースに対応できません。
(英数字・アンダーバー・ドルマーク以外の文字が後ろに続く必要があるため)
[...|...](or条件)で改行コード(\r\n、\n)を指定することで、
変数名が文末に存在するケースにも対応しています。
【確認】
下記のようなソースコードがある場合に、左辺のhogeと右辺のhogeのみが検索され、headhogeやhogetailは検索されません。
hoge = hoge
+ headhoge
+ hogetail;