You have to specify a full version in such case.
As for expressing ranges, only the following syntax works on command line:
$ eclipse-platform -nosplash -application org.eclipse.equinox.p2.director -repository
http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases -list q:"select(iu|
iu.id=='org.eclipse.xtext.sdk.feature.group' && iu.version >= '2.5' && iu.version < '2.6')"
org.eclipse.xtext.sdk.feature.group=2.5.0.v201312110906
org.eclipse.xtext.sdk.feature.group=2.5.1.v201402030714
org.eclipse.xtext.sdk.feature.group=2.5.2.v201402120812
org.eclipse.xtext.sdk.feature.group=2.5.3.v201402240820
org.eclipse.xtext.sdk.feature.group=2.5.4.v201404100756
Operation completed in 30705 ms.
However, if I start a Host OSGi Console in Eclipse RCP or only start an OSGi console with "eclipse -console -noSplash -noExit -vmargs -Declipse.application.launchDefault=false", this syntax works too:
osgi> start org.eclipse.equinox.p2.console
osgi> provlquery
http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases "select(iu|
iu.id=='org.eclipse.xtext.sdk.feature.group' && iu.version ~= range('[2.5,2.6)'))" true
I haven't tested tycho-p2-extras-plugin:mirror goal, but I'm quite sure it behaves similarly. By the way, it would be interesting to hear if the ~= operator works in Tycho if you end up testing it.