#!/usr/bin/perl use strict; use warnings; my $string = 'foo 1foo; foo_2 foo-bar() 87 - _ !@#$% '; my $optional = qr/[\d_-]/; my $mandatory = qr/[a-zA-Z]/; $string =~ s/$optional*$mandatory$optional*//g; print "$string\n";