if($t1 !~ /A_[A_Z0-9_]+/i) it should be if($t !~ /A_[A-Z0-9_]+/i) Output: ------- $CD = 'A_TAG_HSSL_LBA_1'; #matches $CD = 'A_TAG_HSSL_LBAB_1'; #not matches