もっと正規表現について勉強しろ。
例えばggg[^a]+と指定した場合
gggbac
のgggb迄が部分一致してしまう。

この場合はggg[^a]+cと指定すべき。


あんたの例で言うと C:\\test\\[^&]+ ではファイル名の先頭に&が無いものを検索してる事になる。
ここでは拡張子が分かっているなら
C:\\test\\[^&]+\.拡張子
にするか
C:\\test\\[^&]+\..+
としなければならん

おわかり?