¿Cuál es la sintaxis de la versión de bower (y npm)?

Bower me permite especificar los requisitos de versión de los paquetes con la siguiente sintaxis:

"dependencies": {
  "<name>": "<version>",
},

Pero no he podido encontrar cuál es la sintaxis que debe usarse para el<version>. Sé que puedo especificar que las versiones sean:

mayor que una cierta versión con">1.0.0"Mayor o igual a una versión:">=1.0.0"o en algún rango:"1.0.0 - 2.0.0".

También sé que hay una sintaxis de versión común que contiene la tilde:"~1.0.0". Pero no estoy seguro de lo que significa y si es lo mismo que"=1.0.0".

También me interesa saber si puedo especificar varias versiones no consecutivas, como exactamente1.0.3&nbsp;más versiones mayores que1.5.0, etc ...