reg: TPerlRegEx;

  reg := TPerlRegEx.Create();

  reg.Subject := ;
  reg.RegEx   := ;
  reg.Replacement := ;

  reg.Options := [preCaseLess]; 
  reg.ReplaceAll;

  ShowMessage(reg.Subject); 
  FreeAndNil(reg);
;

  reg: TPerlRegEx;

  reg := TPerlRegEx.Create();

  reg.Subject := ;
  reg.RegEx   := ;
  reg.Replacement := ;

  reg.Options := [preAnchored]; 
  reg.ReplaceAll;

  ShowMessage(reg.Subject); 
  FreeAndNil(reg);
;


  reg: TPerlRegEx;

  reg := TPerlRegEx.Create();

  reg.Subject :=  +
                  +
                 ;
  reg.RegEx   := ;    reg.Replacement := ;

  reg.Options := [preDollarEndOnly]; 
  reg.ReplaceAll;

  ShowMessage(reg.Subject);


  FreeAndNil(reg);
;

  reg: TPerlRegEx;

  reg := TPerlRegEx.Create();

  reg.Subject :=  +
                  +
                 ;
  reg.RegEx   := ;
  reg.Replacement := ;

  reg.Options := [preMultiLine]; 
  reg.ReplaceAll;

  ShowMessage(reg.Subject);



  FreeAndNil(reg);
;


  reg: TPerlRegEx;

  reg := TPerlRegEx.Create();

  reg.Subject :=  +
                  +
                 ;
  reg.RegEx   := ;
  reg.Replacement := ;

  reg.Options := [preSingleLine]; 
  reg.ReplaceAll;

  ShowMessage(reg.Subject);



  FreeAndNil(reg);
;

  reg: TPerlRegEx;

  reg := TPerlRegEx.Create();

  reg.Subject := ;
  reg.RegEx   := ;

  reg.Replacement := ;

  reg.Options := [preUnGreedy];   

  reg.ReplaceAll;

  ShowMessage(reg.Subject); 
  FreeAndNil(reg);
;

  reg: TPerlRegEx;

  reg := TPerlRegEx.Create();

  reg.Subject := ;
  reg.RegEx   := ; 
  reg.Replacement := ;

  reg.Options := [preExtended]; 
  reg.ReplaceAll;

  ShowMessage(reg.Subject); 
  FreeAndNil(reg);
;

关于选项 preExtra:

如果表达式中需要特殊字符 ^ $ ( ) [ ] { } . ? + * | \ 时, 需要加转义符号 \ ;
默认状态下, 其他字符前面添加了 \ 会识别为字符本身;
preExtra 选项应该就是禁止这种情况的, 也就是不要在非特殊字符前加 \ ;
但测试效果 ... 也许是我没弄明白!

还有三个状态选项: preNotBOL, preNotEOL, preNotEmpty

reg.State := [preNotBOL] 是让标记开始的 ^ 无效;
reg.State := [preNotEOL] 是让标记结尾的 $ 无效;
reg.State := [preNotEmpty] 没弄明白!

另外这些选择是可以组合使用的, 譬如:

reg.Options := [preCaseLess, preMultiLine, preSingleLine];
reg.State := [preNotBOL, preNotEOL];