>why would the ;~ not work for this situation
Because the documentation says:
If the Regular Expression check box is not selected, this field can contain one or more substrings. Substrings must be separated by a ; (semicolon). Spaces are considered as being part of the substring. A substring can be prefixed by a ~ (tilde). The condition is evaluated to true if all substrings without the prefix ~ and none of the substrings with the prefix ~ are contained in the message text of the syslog message.
This means that if you don't use regex (e.g. 10.1.1.1;10.2.4.3;10.10.1.15;10.4.3.2;10.5.3.4;10.11.3.2;10.20.10.10), ALL addresses must be contained in the message text to constitute a match (which isn't the case in your scenario). Using the ~ character as prefix means that the rule matches only if the following string DOESN'T contain the following substring, which isn't what you intend, too.
-Franz