If you have a lot of regions, you will probably need one rule per region and per set of additional conditions that define the workgroup for the assignment. This can quickly become extremely complex to manage.
Some other possibilities might be: - have the information in templates, and have different roles according to the region. Each region's roles will see only its own templates (this solution, too, can become messy). You might also consider using folders to segment the work orders, if you want to have different view/write access to the work orders, depending on region.
- set up your algorithm for workgroup assignment using some external logic and the Web API. This is probably the most elegant solution.
In a similar situation I wrote UI rules to update the Assignment Work Group based on the values of other fields chosen in the form.
For other fields, code tables, WorkGroup values -- something clearly defined and repeatable work best.
Rule Example... When an item is created or modified Where Status = Field x = Set Assignment Workgroup Name to
I hope you don't have too many to do, I worte about 14 of these for our Change module but this is possible in Problem, Work Order, Change, Service Call... it just requires that you have the necessary information within that form and a consistent process from which to write a rule.
Be sure you check the box "Evaluate this rule when the field has been changed." when setting up the criteria.