we are developing project for 6 months and im begginer with versioning
currently we are using traditional semantic versioning it looks like this:

1.0.0.0 to 1.0.0.1 (Build number)

1.0.0.0 to 1.0.1.0 (For patches/bugs removal)

1.0.0.0 to 1.1.0.0 (For addition of certain functionality in software)

1.0.0.0 to 2.0.0.0 (For major updates)

Can i ask you what is best practice to differ versions if we are launching our product in multiple countries with some specific functions? That mean core is same but some extensions are different because of needs or laws of that country.