I'm surprised that we do not have a Cisco wizard as a member of the kitz community.
I am a CCIE...
To answer the original question: -
Say I have a subnet IP address range a … b and call the subnet p say and within it somewhere suitable I position a sub-subrange of a small number of IP addresses, call that sub-subnet s.
If I set this up as two <subnet /> definitions appropriately in my router, will this work ? I’m hoping it will, because despite the clashing ranges the idea is that the most-specific / longest-prefix wins routing table algorithm will pick sub-subnet s in preference when it matches. Is this correct?
It won't work this way, no - you can't have sub ranges within a subnet overlap - I doubt your router would like that very much.
You would need to either split the "main" subnet down with a larger subnet mask, and use a smaller mask for the subnet you want to add, but you are limited how you do this because of binary math.
If you take a /24 for example, this is 255.255.255.0 in decimal notation.
Using 192.168.0.0 as the network - you get 192.168.0.0 is the "network" address, and 192.168.0.255 is the "broadcast" address, leaving .1 -> .254 for hosts within that subnet.
If you used /25 - this would halve the /24, thus 192.168.0.0 -> 192.168.0.127 is the /25 address range (including the network and broadcast address)
192.168.0.128 upwards, would be free, but you could then subdivide this further, i.e. 2 x /26's would fit where the /25 was, but the boundary addresses must be adhered to, i.e you can't then decide to put a /26 at 192.168.0.0 and a /25 where the /26 ends - it doesn't work like that...