Hi Arnaud... let's define two number ranges and a few other items for your use case and work them separately:
Range 1 - 101000 - 101999 - extensions for users
Range 2 - 102000 - 102999 - route points for flows
Route point for flow: 102001
DID Range for Flows: +14445102000 - +14445102999
DID Number for Flow: +14445102001
For Range 1, Define that range as a did pool then assign extension to users as needed. Then confirm that your default site has a number plan for that string length (there's an extension plan by default, but you may need to adjust it for length if it's longer/shorter than the default) If a string within that range comes inbound and is assigned to the user, it'll be handled as an internal call and routed to that user.
For Range 2 the inbound string will be processed as an extension for the default site, but since it's not assigned to anything we'll need to modify it so GC knows what to do with it. For this you'll want to create a number plan in your default site, and use a regex match, and then modify the string. This is what allows you to convert it to the e164 did string you have assigned to your flow.
When a string of 102001 comes inbound on that trunk, it'll match the extension number plan, and the site will begin processing it. It will evaluate the Extension Match plan first (they go in order). The match expression will match a six digit string beginning with 102, and place the last three digits into group 1 (i.e., $1). The normalized number expression will then prepend +14445102 to the digits in group 1, creating your full e164 string that will be processed.
If it matches a gc did number, it'll follow that route, if not it'll be routed out to the pstn.
My example is using two distinct ranges, so if you have a mixed up set of numbers it'll be more complex.

------------------------------
Dean Thames
Sr. Principal Consultant Cloud CX
------------------------------