Release naming conventions reports exactly the format used for the release names, and how they are formatted.
In short, the format is [Drupal version].x-[major version]-[minor version]-[flags].
For a development snapshot, the format is [Drupal version].x-[major version]-x-dev.
"Major version" and "minor version" refer to the module version, where "minor version" is a progressive number.
As for the module not working if the release number doesn't follow the schema, I think the problem is another one; as far as I know, Drupal doesn't check the format, and the release name is only used from the update manager, when it is looking for the module updates, and the module is hosted on Drupal.org.
You should not be worried about the format used for the release version identifier, if not when you are developing a module that is host on Drupal.org. If you are developing a custom module that is not hosted there, you don't need to report the module version. In fact, in my test site I have a test module that doesn't report its version, and Drupal is still able to use it; the only difference is when another custom module depends from that, and it is reporting with which version of the first module is compatible. Then, Drupal will not show the module version in the module page, if the .info file doesn't report that.