The code name field validation does not allow dots as a starting character at all, it does not matter whether the roles are global or not. No code name should start with dot. Maybe the roles were create through the code or importing.
Thank you for the screen shot - it is more clear now. If you want to use macro expression, then you need to select "Macro expression" option for the drop down list data source. When using List of options, plain text is expected and macros are not resolved.
When using macro expression, it has to be one expression, in your case IF-ELSE and the false branch will return enumerable object for the users not in given roles and true branch will return all the option for users in these roles. It might be maybe easier to create a custom macro method which will return the desired enumeration.