@fmradio516,
I apologize for the late response here, but my notifications from SW aren't getting through to me for some reason.
Anyway, there are several options here without getting into scripting.
Option 1:
In order to get "port D[1-16]-High collision" to work in a filter, you have to choose RegExp as your filter type because [1-16] is a regular expression denoting that the character string coming after D is in the range of 1-16. It's not going to work if you just choose simple or complex for the filter type.
Option 2:
You can also use a simple or complex filter (depending on how you are filtering for this rule, either including or excluding) but that's irrelevant. The filters include an implied "OR" logic so in your Include or Exclude, you could have for instance:
"port D1-High" "port D2-High" "port D3-High" etc... each instance inclosed in quotes and seperated by a space.
Option 3:
Your suggested Multiple filters option will work, but will only work with Exclude. It can't work with Include because the initial Include would exclude everything else, while an initial Exclude would include everything else with each filter further exluding one option at a time. It's a messy way of doing things for sure though.
Option 4:
Scripting. Not necessary in this case, but it is an option. Not an efficient option though. Even if you're already running a script for this rule, it's more efficient to exclude messages before running the script than it is to run the script for every message and then exclude the ones you don't want. The only time I'd recommend a script for something a rule or filter could do is if you've hit your limit on rules or filters and can't consolidate anywhere.