use strict; #use re 'debug'; { my ($rv, $linestr, $pattern); $linestr = ' '; $pattern = '^\({0,1}(((ix)|(iv))|(x{0,3}((ix)|(iv)))|(x{0,3}(v{0,1}i{0,3}))){1,1}((\)\. )|(\) )|(\. )|( )){1,1}'; if( $linestr =~ m/$pattern/i) { print ("Matched '$&' in '$linestr'\n"); } else { print ("Not matched\n"); } }