perl -e '$_ = "one two three four"; print $1,$2,$/ if (/(one) .+?(?: three (four))/)' perl -e '$_ = "one two three four"; print $1,$2,$/ if (/(one) .+?(?: three (four))?/)'