I think that this is not possible in PL/SQL, to have indirection in identifiers via variables. In relational spirit, I would suggest that you add an attribute, let say "country_group",
and store all your countries in a single table (or view) and then simply build your LOV query with a where clause :
:GLOBAL_ESCHEMA := 'RPSENV' ;
... where country_group = :GLOBAL_ESCHEMA ...
Not exactly what you are looking for, but a direction to the solution.
What I did,
Created the global item on Shared components> application items called global_schema with no restriction so I can send the value by the browser.
every query I use, like this: select col1, col2 from &GLOBAL_SCHEMA..table1@dblink_db1 where col1 = 1;
note that there is double period before table1, its because &ITEM. stores the value of the schema user owner of table1, so think of RPSENV.TABLE1 ==> &ITEM..table1
and it works!
Not sure why I would need this but, I did want to say that that is pretty cool!
Thanks for sharing the solution.