my @strings = ( "ENV(ABCD1234) STATUS(Running)", "ENV(IJK1234) STATUS(Not Running)", "PRINT NAME FIRST(ABCD) SECOND(EFGH) ADDRESS('') PHONE(12345678)", "PRINT NAME FIRST() SECOND(WXYD) ADDRESS('') PHONE(87654321)" ); foreach (@strings) { print $1 if /ENV\(([^)]*)\) STATUS\(Not Running\)/; print $1,$2 if /^PRINT NAME FIRST\(([^)]*)\).* PHONE\([^)]*\)/; }