uses regexpr, classes; var pieces : tstringlist; s : string; begin pieces := TStringList.create; SplitRegExpr( '--+| *, *', 'thus--and even , hurly-burly,willy-nilly', pieces ); for s in pieces do writeln( s, '<'); pieces.destroy; end. Output: thus< and even< hurly-burly< willy-nilly<