qr{ : ( .*? \. BO \b ) }x
####
DI.CATALOGUE.ITEM.IMPORT.BO
DI.PRODUCT.HIERARCHY.IMPORT.BO
DI.CATSETUP.PRODUCT.IMPORT.BO
ATP.CANCEL.PARCEL.CONFIRM.EXPORT.BO
ATP.DELIVERY.DEFINITION.EXPORT.BO
ATP.FOREIGN.PARCEL.EXPORT.BO
ATP.PARCEL.DESPATCH.EXPORT.BO
####
#!/usr/bin/env perl -l
use strict;
use warnings;
my $most_situations_re = qr{ : ( .*? \. BO \b ) }x;
my $particular_requirement_exclude_re = qr{ PRODUCT }x;
while () {
next unless /$most_situations_re/;
my $capture = $1;
next if $capture =~ /$particular_requirement_exclude_re/;
print $capture;
}
__DATA__
red Queue TEST1:DI.CATALOGUE.ITEM.IMPORT.BO has depth 10 (critical: 10, warn: 1)
red Queue TEST1:DI.PRODUCT.HIERARCHY.IMPORT.BO has depth 20 (critical: 10, warn: 1)
yellow Queue TEST1:DI.CATSETUP.PRODUCT.IMPORT.BO has depth 9 (warn: 1, critical: 10)
green Queue TEST1:ATP.CANCEL.PARCEL.CONFIRM.EXPORT.BO has depth 0 (warn: 1, critical: 10)
green Queue TEST1:ATP.CANCEL.PARCEL.CONFIRM.EXPORT.LQ has depth 0 (warn: 30, critical: -1)
green Queue TEST1:ATP.DELIVERY.DEFINITION.EXPORT.BO has depth 0 (warn: 1, critical: 10)
green Queue TEST1:ATP.DELIVERY.DEFINITION.EXPORT.LQ has depth 0 (warn: 10, critical: -1)
green Queue TEST1:ATP.FOREIGN.PARCEL.EXPORT.BO has depth 0 (warn: 1, critical: 10)
green Queue TEST1:ATP.FOREIGN.PARCEL.EXPORT.LQ has depth 0 (warn: 5, critical: -1)
green Queue TEST1:ATP.PARCEL.DESPATCH.EXPORT.BO has depth 0 (warn: 1, critical: 10)
####
DI.CATALOGUE.ITEM.IMPORT.BO
ATP.CANCEL.PARCEL.CONFIRM.EXPORT.BO
ATP.DELIVERY.DEFINITION.EXPORT.BO
ATP.FOREIGN.PARCEL.EXPORT.BO
ATP.PARCEL.DESPATCH.EXPORT.BO