MercurialでTeraTerm Proマクロ以外のファイルを無視する書き方

TeraTerm ProのマクロをMercurialで管理しています。マクロファイルは他のファイルと同じ場所に置くのが慣例のようです。そのため、Mercurialでファイルの状態を確認すると、*.exeや*.dll、*.CNFなどのたくさんのファイルが「未登録」として表示されます。マクロファイル(*.ttl)のみを管理したいので、他のファイルをMercurialが無視するように.hgignoreファイルを設定しました。

.hgignore:

syntax: regexp
[^l]$
[^t]l$
[^t]tl$
[^.]ttl$

次のような意味になります。

行番号 設定 意味
1 syntax: regexp 正規表現を使う
2 [^l]$ l(小文字のL)で終わらないものを無視する
3 [^t]l$ l(小文字のL)で終わり、その前がtでないものを無視する
4 [^t]tl$ tlで終わり、その前がtでないものを無視する
5 [^.]ttl$ ttlで終わり、その前が“.”(ドット)でないものを無視する

これで*.ttl以外のファイルが無視されます。正規表現で「拡張子が○○以外のファイル」というのは指定するのが難しいと思っていましたが、意外と簡単に書けました。ただし、「*.ttlと*.ini以外」のように複数の拡張子になると、この方法では対応できないと思います。