// *** in version XE: ***
uses
RegularExpressions;
var
R: TRegEx;
M: TMatch;
Part: string;
begin
// every digit is hidden
Writeln(TRegEx.Replace('phone 8-916-000', '\d', '#'));
// the separator is a pattern, not a single character
for Part in TRegEx.Split('a, b;c', '[,;]\s*') do
Writeln(Part);
// an instance compiles the pattern once and can be reused
R := TRegEx.Create('(\w+)\s*=\s*(\w+)', [roIgnoreCase]);
M := R.Match('width = 10, height = 20');
while M.Success do
begin
Writeln(M.Groups[1].Value, ' -> ', M.Groups[2].Value);
M := M.NextMatch;
end;
end;