Hi Jaweed,
Generally, we set up business units for each country or region.
The users who have Business Unit level access privilege on Contact can only access the contacts of the current business unit, which is the one that the owner of that contact belongs to.
So in this case, we will set business units France, Italy, Spain, Uk, and their parent business unit Europe. Set business units Singapore and Malaysia and their parent business unit Asia.
First set the business units Europe and Asia.

Then set business units for countries.

Each business unit has its own set of security roles.

For the security roles of these business units, the Read privilege on Contact should not be higher than
Parent: Child Business Units.

If a contact's owner is of France business unit, the users in the France business unit with the Read privilege on Contact that not higher than
Parent: Child Business Units can access it, the users of other business units with the same Read privilege on Contact cannot access it.
The Manager Europe whose business unit is Europe can access all contacts that owner is of France business unit, but cannot access contacts that owner is of Singapore business unit