ADO.NETでパラメータマーカ(@, :, ?)を含んだSQL文を実行するとき、データプロパイダごとにパラメータマーカが異なります。(例:Oracleだと、"SELECT * FROM emp WHERE empno = @0"、SQLClientは、"SELECT * FROM emp WHERE empno = @empno")
そのため、データベースを変更したときSQL文を修正する必要があります。

S2ADOでは、データプロパイダごとにパラメータマーカを自動的に切り替えることでデータプロバイダに依存しないSQL文の作成を可能にしています。

そのため、ユーザプログラムで指定したSQL文からパラメータマーカー+パラメータ名(例:@empno)を"@[a-zA-Z\.0-9_$]+"の正規表現で切り出しています。
例えば、@$empnoはパラメータマーカーして認識しますが、@[first name]は認識しません。
また、@@versionなどの関数は、正規表現ではなくプログラム内ではじいています。

MSDN(http://msdn2.microsoft.com/ja-jp/library/ms254501.aspx)によると

たとえば、パラメータ名に "@" という前置文字が含まれている、名前付きパラメータがサポートされている場合、"(@[A-Za-z0-9_$#]*)" となります。

とあります。

整理すると、有効なパラメータ名は次のようになります。

…@[a-zA-Z0-9_$\.]+ (アルファベット、数字、下線、_、$、ピリオド。1文字以上)

…@[a-zA-Z0-9_$#]*) (アルファベット、数字、下線、_、$、#。0文字以上)

.(ピリオド)の文字は、S2DAO.NETDTOのIN句の指定時に使用しています。
#(シャープ)の文字は、考慮していませんでした。

そこで、次バージョンのS2Container.NETでは、
パラメータ名の切り出しに使用する正規表現を、次のように修正する予定です。

@[a-zA-Z\.0-9_$#\.]* (アルファベット、数字、下線、_、$、#、ピリオド。0文字以上)