unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, RegularExpressions; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); private function MyMatchEvaluator(const Match: TMatch): string; //TMatchEvaluator = function(const Match: TMatch): string of object; public end; var Form1: TForm1; implementation {$R *.dfm} const pattern = '[A-Z]+\d+'; txt = 'AAA1 BBB2 AA11 BB22 A111 B222 AAAA'; procedure TForm1.Button1Click(Sender: TObject); begin Memo1.Text := TRegEx.Replace(txt, pattern, MyMatchEvaluator); //aaa1 bbb2 aa11 bb22 a111 b222 AAAA end; function TForm1.MyMatchEvaluator(const Match: TMatch): string; begin Result := LowerCase(Match.Value); end; end.