How are OCR training datasets constructed?

For the sake of concreteness: let's suppose that the word "OCR" refers to any OCR system build on an R-CNN architecture. Similarly, in aims of simplicity, let's declare that we are interested in reading digits between 0 and 100.

Question: How should I construct a dataset (given the aforementioned goal and architecture) ?

My understanding is that I need to collect images of all the digits from 1 to 100 and label them with its corresponding digit. Is this premise correct?

My struggle is that I can't fully understand how this seemingly tedious procedure is generalized to OCR that read more general types of characters (language-characters for example or if I generalize the problem to detect the numbers from 0 to $$10^{10}$$).

OCR - optical character recognition identifies individual characters. So in the case of numbers, there are just 10 classes to learn. And this doesn't depend on how large numbers we are looking at. There is a separate step to segment observed numbers (or words) into single digits (or characters).

But on low-quality images this character segmentation is non-trivial, so better (and more complex) systems work with a larger context.