Delphi XE5からHmJre.dllのReplaceRegularNoCaseSense関数を使う方法です。
ReplaceRegularNoCaseSense関数の定義は次のようになります。
/// <summary>
/// 特定の文字列から特定の正規表現パターンのマッチングをして、ヒットした場合はパラメータに従った置換を実行し、その置換した結果の文字列を返します。
/// </summary>
/// <param name="pszPattern">
/// 検索したい正規表現文字列
/// </param>
/// <param name="pszTarget">
/// 検索対象の文字列
/// </param>
/// <param name="iStart">
/// 検索を開始する桁位置
/// </param>
/// <param name="pszReplace">
/// 検索でヒットした文字列を置換する用の文字列
/// </param>
/// <param name="iMode">
/// 0.最初にヒットした文字を置換、1.ヒットしたすべての文字を置換
/// </param>
/// <returns>
/// 置換した結果の文字列
/// </returns>
function ReplaceRegularNoCaseSense(pszPattern: PAnsiChar; pszTarget: PAnsiChar;
iStart: Integer; pszReplace: PAnsiChar; iMode: Integer): PAnsiChar; stdcall;
external 'HMJRE.DLL' name 'ReplaceRegularNoCaseSense';
ReplaceRegularNoCaseSense関数の使用例です。
procedure TForm1.Button1Click(Sender: TObject);
var
S: AnsiString;
begin
S := ReplaceRegularNoCaseSense(
PAnsiChar('([a-z]+)([0-9]+)'), // 検索したい正規表現文字列
PAnsiChar('--abcdefg1234567--'), // 検索対象の文字列
0, // 検索を開始する桁位置
'\2\1', // 検索でヒットした文字列を置換する用の文字列
1 // 0.最初にヒットした文字を置換、1.ヒットしたすべての文字を置換
);
ShowMessage(S);
end;