On Wed, 16 Aug 2006, Mike Taylor wrote: >Jakob Voss writes: > > /starts-with (equal to ="...*") > > /ends-with (equal to ="*...") > > /contains (equal to ="*...*") > > are probably more common use-cases than /substring and they are > > easier to remember and to implement than juggling asterisks. >Surely now we've seen the light and realised that existing truncation >mechanisms give us what we want, the very last thing we want to do is To go right the way back to the beginning, the original requirement was to be able to say that you want to search for specific locations within a string, for example marc.008 =/substring=1:6 061223 As substring isn't marc specific, (eg both SQL and XPath have a substring function), it was decided it should go into the cql context set. At which point several different extensions (such as negative numbers for counting backwards) were introduced to make it more featureful. This isn't covered by existing masking characters, so we do need at least start:length, where both start and length are positive integers. Rob