Config_db - set and get

I am having some tough time understand how the match between set and get work while retrieving the config_db parameters.
It would help if someone can clarify please. Do the dots (e.g. env.agent*.) have any special meaning or they are just characters to match while retrieving?

Is there a difference between the following:

env.agent*. (does this set config only for agents and not for drivers/monitors under agents)
env.agent.* (does this set config for agent whose instance name is “agent” and any components under it)
env.agent*.* (does this set config for agent as well as components under agent)
env.agent* (will this not set values for agents as well as any components under the agent)

TIA

In reply to verif_learner:

When it comes to wildcard matching, “.” is just a character in a string. I suggest reading this DVCon paper.

In reply to dave_59:

Dave,

Yes. I have read through that paper. There are still some doubts.
Somehow, the whole matching between set and get entities happens through Regex but the rules of regular expression aren’t given anywhere.

For example, would set with env.agent* match get for all of the following?
env.agent1
env.agent2
env.agent1.driver etc.

Similarly, would set with env.agent.* match get for the following?
env.agent.driver
env.agent.monitor

and not for the following:
env.agent1.driver

Thanks in advance

In reply to verif_learner:

See the documentation for uvm_resource_base