Reference · Core data & language
Pattern matching
69 functions in 13 classes, grouped by what they do, each with the explanation the library gives of itself.
The story of this area, for a general reader: what a crafter does with it, an example run and its rated lanes, is on its Platform page.
The functions, by what they do
Testing and checking
- IsValid pattern information and validation in stzRegex
composed example
o1 = new stzRegex("[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+") ? o1.IsValid() #--> 1composed from the signature, run for this page - IsPartialMatch TRUE only when pcStr is a strict PREFIX of something that would match entirely -- on the way there, not there yet. in stzRegex
composed example
o1 = new stzRegex("[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+") ? o1.IsPartialMatch("an") #--> 1composed from the signature, run for this page - HasPartialMatch Reads the recorded outcome of the LAST match, exactly as HasMatch() does. It used to re-run a fresh unanchored partial probe instead, so the two siblings could describe different matches. in stzRegex
composed example
o1 = new stzRegex("[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+") ? o1.HasPartialMatch() #--> 0composed from the signature, run for this page - IsNumeric helper methods in stzTablex
composed example
o1 = new stzTablex("{cols(3) & contains(Tunis)}") ? o1.IsNumeric("an") #--> 0composed from the signature, run for this page - IsDiagonal part extraction in stzMatrex
composed example
o1 = new stzMatrex("{@!property(symmetric)}") ? o1.IsDiagonal([ "an", "a" ]) #--> 0composed from the signature, run for this page - IsIdentity part extraction in stzMatrex
composed example
o1 = new stzMatrex("{@!property(symmetric)}") ? o1.IsIdentity([ "an", "a" ]) #--> 0composed from the signature, run for this page - IsSymmetric part extraction in stzMatrex
composed example
o1 = new stzMatrex("{@!property(symmetric)}") ? o1.IsSymmetric([ "an", "a" ]) #--> 0composed from the signature, run for this page - CheckPart relation checking in stzNumbrex
- CheckApprox relation checking in stzNumbrex
- CheckDigits digit checking in stzNumbrex
- CheckDivisor relation checking in stzNumbrex
- CheckFactors factor checking in stzNumbrex
and 3 more in the reference
Finding
- LastMatchKind The kind of the last match: 0 none, 1 complete, 2 partial. in stzRegex
composed example
o1 = new stzRegex("[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+") ? o1.LastMatchKind() #--> 0composed from the signature, run for this page - LastError pattern information and validation in stzRegex
- FindMatchingMatrices filtering operation in stzMatrex
- FindMostSimilarMatrix matrix comparison methods in stzMatrex
- FindAllMatches helper methods in stzListexuter
Counting and measuring
- CountMatchingTables advanced query methods in stzTablex
Replacing and setting
- SetCase case sensitivity helper in stzRegexMaker
o1 = new stzRegexMaker o1.SetCase(:insensitive) o1.AddCapturingGroup("quote", '[""].*?[""]') o1.AddComment("Matches smart quotes and content") ? o1.Pattern() #--> (?i)(?P<quote>[""].*?[""])(?#Matches smart quotes and content)library test - SetPattern init and pattern seeting in stzRegex
composed example
o1 = new stzRegex("[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+") o1.SetPattern("an") ? o1.Content() #--> ancomposed from the signature, run for this page - SetDebug debug methods in stzTablex
- SetCacheSize cache utility in stzTablex
- SetTarget query methods in stzTimex
Removing
- ClearCache cache utility in stzTablex
- RemovePrefix pattern parsing in stzTablex
- RemoveConstraint pattern constraint in stzMatrex
- RemoveQuotes pattern handling in stzListex
Adding
- AddRange adding sequences in stzRegexMaker
composed example
o1 = new stzRegexMaker() o1.AddWordBoundary(:start) o1.AddCapturingGroup("digits", "\d+") o1.AddWordBoundary(:end) o1.AddRange(:Digits, "a-f", :OneOrMore, 2, 5) ? o1.Pattern() #--> \b(?P<digits>\d+)\b[a-f]composed from the signature, run for this page - AddComment comment helper in stzRegexMaker
o1 = new stzRegexMaker o1.SetCase(:insensitive) o1.AddCapturingGroup("quote", '[""].*?[""]') o1.AddComment("Matches smart quotes and content") ? o1.Pattern() #--> (?i)(?P<quote>[""].*?[""])(?#Matches smart quotes and content)library test - AddLiteral adding a litteral string in stzRegexMaker
composed example
o1 = new stzRegexMaker() o1.AddWordBoundary(:start) o1.AddCapturingGroup("digits", "\d+") o1.AddWordBoundary(:end) o1.AddLiteral("a") ? o1.Pattern() #--> \b(?P<digits>\d+)\bacomposed from the signature, run for this page - AddAmongChars adding sequences in stzRegexMaker
composed example
o1 = new stzRegexMaker() o1.AddWordBoundary(:start) o1.AddCapturingGroup("digits", "\d+") o1.AddWordBoundary(:end) o1.AddAmongChars("abc", :OneOrMore, 2, 5) ? o1.Pattern() #--> \b(?P<digits>\d+)\b[abc]composed from the signature, run for this page - AddCharsRange adding sequences in stzRegexMaker
composed example
o1 = new stzRegexMaker() o1.AddWordBoundary(:start) o1.AddCapturingGroup("digits", "\d+") o1.AddWordBoundary(:end) o1.AddCharsRange("a-f", :OneOrMore, 2, 5) ? o1.Pattern() #--> \b(?P<digits>\d+)\b[a-f]composed from the signature, run for this page - AddAmongDigits adding sequences in stzRegexMaker
composed example
o1 = new stzRegexMaker() o1.AddWordBoundary(:start) o1.AddCapturingGroup("digits", "\d+") o1.AddWordBoundary(:end) o1.AddAmongDigits("123", :OneOrMore, 2, 5) ? o1.Pattern() #--> \b(?P<digits>\d+)\b[123]composed from the signature, run for this page - AddDigitsRange adding sequences in stzRegexMaker
composed example
o1 = new stzRegexMaker() o1.AddWordBoundary(:start) o1.AddCapturingGroup("digits", "\d+") o1.AddWordBoundary(:end) o1.AddDigitsRange("123", :OneOrMore, 2, 5) ? o1.Pattern() #--> \b(?P<digits>\d+)\b[123]composed from the signature, run for this page - AddMatchLength match length behavior helper in stzRegexMaker
o1 = new stzRegexMaker o1.AddMatchLength("\w+", :shortest) # Split "item1,item2" into separate matches o1.AddMatchLength(".+", :longest) # Capture "key=value" as single entry o1.AddMatchLength("\d+", :complete) # Match complete number without backtracking ? o1.Pattern() #--> \w++?.++\d+++library test - AddBackReference backreference helper in stzRegexMaker
composed example
o1 = new stzRegexMaker() o1.AddWordBoundary(:start) o1.AddCapturingGroup("digits", "\d+") o1.AddWordBoundary(:end) o1.AddBackReference("a") ? o1.Pattern() #--> \b(?P<digits>\d+)\b(?P=a)composed from the signature, run for this page - AddNotAmongChars adding sequences in stzRegexMaker
composed example
o1 = new stzRegexMaker() o1.AddWordBoundary(:start) o1.AddCapturingGroup("digits", "\d+") o1.AddWordBoundary(:end) o1.AddNotAmongChars("abc", :OneOrMore, 2, 5) ? o1.Pattern() #--> \b(?P<digits>\d+)\b[^abc]composed from the signature, run for this page - AddCapturingGroup capturing group helper in stzRegexMaker
o1 = new stzRegexMaker o1.SetCase(:insensitive) o1.AddCapturingGroup("quote", '[""].*?[""]') o1.AddComment("Matches smart quotes and content") ? o1.Pattern() #--> (?i)(?P<quote>[""].*?[""])(?#Matches smart quotes and content)library test - AddNotAmongDigits adding sequences in stzRegexMaker
composed example
o1 = new stzRegexMaker() o1.AddWordBoundary(:start) o1.AddCapturingGroup("digits", "\d+") o1.AddWordBoundary(:end) o1.AddNotAmongDigits("123", :OneOrMore, 2, 5) ? o1.Pattern() #--> \b(?P<digits>\d+)\b[^123]composed from the signature, run for this page
and 12 more in the reference
Splitting and extracting
- ExtractParts part extraction in stzTablex
- SplitByOperator pattern parsing in stzTablex
- SplitAtTopLevelCommas initialization in stzListex
Converting
- ParsePattern pattern parsing in stzTablex
- ParseAlternation pattern parsing in stzTablex
- ParseConjunction pattern parsing in stzTablex
- ParseConstraints pattern parsing in stzTablex
- ParseSingleToken pattern parsing in stzTablex
- ToJSON serialization in stzMatrex
- ParseDurationToMinutes pattern parsing in stzTimex
- ParseToken initialization in stzListex
- ConvertToType matching logic in stzListex
- ParseSetValues pattern handling in stzListex
- ParseNestedPattern initialization in stzListex
- ParseAlternationToken initialization in stzListex
The explanations are the ones the library gives of itself, read from its documentation comments on 2026-10-01 04:14, from the library at commit 0e72e2e2c, by the library's own stzSelfDoc over 635 class sources.
The classes of this area
- stzRegexMaker · 68 methods
- stzRegex · 66 methods
- stzTablex · 64 methods
- stzMatrex · 58 methods
- stzNumbrex · 50 methods
- stzTimex · 30 methods
- stzListex · 28 methods
- stzListexuter · 27 methods
- stzRegexuter · 27 methods
- stzGraphex · 25 methods
- stzRecursiveRegexMaker · 17 methods
- stzRegexLookaroundMaker · 17 methods
- stzConditionalRegexMaker · 14 methods
Narrations about this area
- Softanza Listex: Bringing Pattern Matching to Lists(opens in a new tab)
- stzMatrex: Declarative Pattern Matching for Matrices in Softanza(opens in a new tab)
- stzNumbrex: A Pattern Language for Numbers(opens in a new tab)
- stzNumbrex: A Pattern Language for Numbers in Softanza(opens in a new tab)
- Mastering Regular Expressions with Softanza: A Modern Approach to Pattern Matching(opens in a new tab)
- Simplifying Regular Expressions with the Enhanced stzRegexData Library(opens in a new tab)
- The Softanza RegexMaker: Making Regex Human-Friendly(opens in a new tab)
- Softanza Regexuter: Regex as Computational Reactive Medium(opens in a new tab)
- stzTablex: Declarative Pattern Matching for Tables in Softanza(opens in a new tab)
- stzTimex: A Pattern Language for Time in Softanza(opens in a new tab)

