use warnings; use strict; while(){ if(/controlled/i){ if(/(?<=a)\s(.+?)-?(?=controlled)/i){ #NOTE HERE print $1,$/; } } } __DATA__ This is a design-controlled string This is a design controlled string #### design design