They are just numbers. Here's how it works. The version number is four parts: major.minor.build.patch.
major.minor are used for each significant release and are set for marketing purposes. They are currently on a 12-week release cycle, where major is updated for each cycle.
build.patch are used for engineering purposes. They update the build value daily on trunk. Periodically, they create a release branch from trunk. On release branches, the build portion of the version is fixed and the patch value is incremented daily.
So for example, the upcoming release will be 9.0.597.something. Typically it takes them a couple weeks to get from beta to stable, so I expect 9.0 stable to be something like 9.0.597.33.
But, as I said, they're just numbers. :-)