Text Ranges apply a similar concept to Picked Ranges  but are typed out rather than selected with a tick-box.
In the example above there are 25,600 possible Leaves (Demo/1/1/1/A/20, Demo/1/1/1/A/25 etc.) but there are two key concepts that Text Ranges can apply so that you can choose a wide range of Leaves with one line.
A Wildcard can be described as representing every Position within a Level. The simplest Text Range is a single character, the Wildcard *. There are two forms of the Wildcard:
- Explicit: Written in the Text Range (e.g. Demo/1/5/5/A/* will work every Bench in the Demo Pit -> Stage 1 -> Strip 5 -> Block 5 -> Seam A)
- Implicit: Any incomplete Text Range (ie. not every Level is represented) has implied Wildcards behind it (e.g. Demo/1/5/5/A is the same as the Demo/1/5/5/A/* above)
The Span character is used to define a range of positions in a Text Range This differs from a Wildcard in that you are required to set the start and end of the range.
The Comma character can add Positions together without including the Positions in between (like a Span does). You can also use the Plus symbol (+) in place of a Comma but Spry will convert it to a Comma later on.
It is important to note that any Positions referenced in a Span are done so by their Index, not their Name. Take note of the screenshot below.
If your Text Range was */*/*/*/150-140 you would find that Spry would include everything from Index 6 all the way to Index 0. It’s important to keep an eye on your Indexes if you want a logical order for your Spans.
To create a new Text Range, in the Setup Ranges window (accessible from several areas within Spry) right-click the Ranges icon or a folder and left-click New Text Range.
Creating a Text Range which you update with your Equipment Source Path (addressed in the Scheduling Section ) can be a useful way of keeping a visualisation of your work in progress.
Expression Filters (introduced in Spry 126.96.36.1995) allow for an alternate or additional filtering process to apply to both Picked and Text Ranges. The Expression should result in a True or False (no IF statement required) such as the example below which filters based on an ash percentage greater than 10.
Inverse Ranges (introduced in Spry 188.8.131.527) allow you to set a range that includes everything BUT what is in the text. Useful for selective exclusion