use Regexp::English; my $re = Regexp::English -> start_of_line -> literal('mail xmlfeedback -s') -> remember -> literal('"feed invalid for agent ') -> multiple -> digit -> end -> literal('"') -> end -> zero_or_more -> whitespace_char -> end -> end_of_line; print $re; __END__ (?^:^mail\ xmlfeedback\ \-s(\"feed\ invalid\ for\ agent\ (?:\d+)\")(?:\s*)$)