Você tem que escapar do {}
da seguinte forma:
\{\$([a-zA-Z_]*)\}
Eu assumo que o Geany e o rubular.com não usam o PCRE (ou o usam de forma diferente). Por favor, note que {}
são geralmente usados para denotar quantificadores.
Sem ter verificado a fonte, só posso supor que o Notepad ++ tenta ser muito inteligente antes de passar a expressão regular para a biblioteca PCRE. Se eu executar o seguinte código no PHP:
echo preg_match( '{\$([a-zA-Z_]*)}', '{$something}' );
Imprime 1
imediatamente. Não há necessidade de escapar de nada.
Desculpe, não posso explicar : (