my $pat = qr { (?(DEFINE) (? (?:\s*\b(?:permit|deny)\b)) (? (?:\s*\b(?:tcp|upd|ip|object-group(?&object_group_name)\b)) (? (?:please define)) (?) (?:\s*\b(?:object-group (?&object_group_name)|host (?&host_address)|(?&network_address) (?&net_mask))\b)) (? (?:please define)) (? (?:please define)) (? (?:please define)) (?) (?&source)) (? (?:\s*\b(?:port (?&port_number)|range (?&low_port) (?&high_port)|)\b)) (? (?:please define)) (? (?:please define)) (? (?:please define)) ) acl ((?&action)) ((?&protocol)) ((?&source)) ((?&destination)) ((?&port)) }x