The situation is simple, all number ranges in the UK are controlled by OFCOM (Oftel as was). Each operator has to apply for a range of numbers in each area. OFCOM will not issue certain numbers if they will cause a conflict, such as local code starting with 999 etc. The 118 range has 118999 set to protected so no UK operator will be able to use that as a subscriber number. The extract from the relevant document for 118999 shows:
1189 88 Allocated BT 3+7 08/04/1996
1189 89 Allocated BT 3+7 08/04/1996
1189 90 Allocated Verizon UK Limited 3+7 27/02/2006
1189 91 Allocated Colt Technology Services 3+7 11/05/2006
1189 92 Protected 3+7
1189 93 Allocated Nextec UK Limited 3+7 06/12/2013
1189 94 Quarantined 3+7 26/09/2006
1189 95 Allocated Simwood eSMS Limited 3+7 18/07/2006
1189 96 Allocated TalkTalk Communications Limited 3+7 15/06/2006
1189 97 Allocated Spitfire Network Services Limited 3+7 27/06/2006
1189 98 Allocated Served Up Limited 3+7 09/05/2008
1189 99 Protected 3+7
1190 Protected 4+6
1191 Protected 4+6
All the files are (currently) found at https://www.ofcom.org.uk/phones-telecoms-and-internet/information-for-industry/numbering/numbering-data
With Number Portability (oh what fun sorting that out was) the actual operator with a particular telephone number is different.
Edit re Quarantined
; It can mean that the number range has been allocated but the recipient operator has ceased to exist or for some other reason it is not using the number range. So it is put into isolation for a period of time until it can be safely re-allocated.
Also, the TV etc numbers for Reading are:Reading 0118 496 0000 to 496 0999