>perl -wMstrict -le "my $body = qr{ [[:upper:]\d]+ }xms; my $cdc = qr{ CDC (?: _ $body){2} }xms; my $smr = qr{ DDCSMR $body }xms; my $rmr = qr{ DDCRMR $body }xms; my $valid = qr{ \A \s* (?: $cdc | $smr | $rmr) \s* \z }xms; while (<>) { chomp; last unless $_; printf qq{'$_' %svalid \n}, m{$valid} ? '' : 'IN'; } " CDC_ ' CDC_ ' INvalid CDC_1_ANSND ' CDC_1_ANSND' valid CDC_ASD_ERTY ' CDC_ASD_ERTY ' valid XYZZY 'XYZZY' INvalid DDCRMRA ' DDCRMRA ' valid DDCSMR 'DDCSMR' INvalid