I only want to route calls outside that start with a “0”.
Reason: I want to distinguish Freepbx internal number 888 from
local outside number “888”. So if a user dials “888” it should be
routed internal but if the user wants to call the outside local "888"
he should be forced to dial “0888” to make every number absolutely unique.
Yes. Please take a look at the documentation section on this site as a starting place and spend some time reading.
Also realize that FreePBX is the user interface for PBX-in-a-Flash, trixbox, elastix, voxbox and several others so take a look at any one of the hundred plus of setup and configuration guides written for those platforms. As all of your posted questions are very basic and addressed in those guides several times over.