How are dynamic dependencies resolved?

The documentation is very sparse on how dynamic dependencies are resolved.

There are two styles of dynamic dependency declaration :

‘lib:20.+’ and ‘lib:20.0+’

Are they equivalent ?

Do 20.1 , 21 and 20.0.1 match these declarations ?

It is a bit problematic to have undocumented behavior for such an important feature.

Syntax and semantics are the same as those used by Ivy.

Thanks for your answer !

Thanks to Peter’s answer, I have been able to find this in Ivy’s documentation :

Revision Matches 1.0.+ all revisions starting with ‘1.0.’, like 1.0.1, 1.0.5, 1.0.a 1.1+ all revisions starting with ‘1.1’, like 1.1, 1.1.5, but also 1.10, 1.11