Qual é a sintaxe da versão do bower (e npm)?

O Bower permite que eu especifique requisitos de versão para pacotes usando a seguinte sintaxe:

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

Mas eu não consegui encontrar qual é a sintaxe a ser usada para o<version>. Eu sei que posso especificar as versões a serem:

maior que uma certa versão com">1.0.0"maior ou igual a uma versão:">=1.0.0"ou em algum intervalo:"1.0.0 - 2.0.0".

Eu também sei que existe uma sintaxe de versão comum contendo o til:"~1.0.0". Mas eu não tenho certeza do que isso significa e se é o mesmo que"=1.0.0".

Também estou interessado em saber se posso especificar várias versões não consecutivas, como exatamente1.0.3 além de versões maiores que1.5.0, etc ...

questionAnswers(5)

yourAnswerToTheQuestion