(?-xism:^[^pcd]*(?:(?:p(?!ig)|c(?!at)|d(?!og)))*[^pcd]*$) dog => cat => pig => owl => 1 conceit => contradict => captivating => purport => correct => #### $ perl -lne 'print if /^[dpc].*[dpc]/ && !/dog|cat|pig/' /usr/dict/words