Softanza
StartFrançais
Softanza
Reference · stzString

BoundedBy()

Same as BoundedByCS: BoundedBy: same semantics as Between() (returns the list of substrings sitting between matched open/close delimiters) but takes the bounds packed as a 2-list [ open, close ]. Matches the archive API at line 34272 + 34290. Used by ccode tests that read like `o1.BoundedBy([ "[", "]" ])`.

also written: SubStringsBoundedBy · AnySubStringsBoundedBy

Basic examples (2)

Softanza
o1 = new stzString("blabla bla <<word1>> bla bla <<word2>>")
? o1.SubstringsBoundedBy([ "<<", ">>" ])
Output
word1
word2

run on 2026-10-02 04:22 inside the library at commit 0e72e2e2c; taken from 318_substringsboundedby.ring(opens in a new tab)

Softanza
o1 = new stzString('   str = "  ...  "     and   str !=    "  *** " ')
? @@NL( o1.BoundedBy('"') ) + NL
? @@( o1.FindAsSections( o1.BoundedBy('"') ) )
Output
[ "  ...  ", "     and   str !=    ", "  *** " ]

[ [ 11, 17 ], [ 19, 39 ], [ 41, 46 ] ]

run on 2026-10-02 04:22 inside the library at commit 0e72e2e2c; taken from 32_boundedby.ring(opens in a new tab)

Scope (1)

Softanza
o1 = new stzString('[[[
	"1", "1",
		[[["2", "♥", "2"]]],
	"1",
		[[["2",
			[[["3", "♥",
				[[["4",
					[[["5", "♥"]]],
				"4",
					[[["5","♥"]]],
				"♥"]]],
			"3"]]]
		]]]
]]]')
? @@( o1.FindSubStringsBoundedByIBZZ([ "[[[", "]]]" ]) ) + NL
? @@NL( o1.SubStringsBoundedByIB([ "[[[", "]]]" ]) )
Output
[ [ 1, 36 ], [ 47, 101 ], [ 118, 130 ] ]

[
	'[[[
	"1", "1",
		[[["2", "♥", "2"]]]',
	'[[["2",
			[[["3", "♥",
				[[["4",
					[[["5", "♥"]]]',
	'[[["5","♥"]]]'
]

run on 2026-10-02 04:22 inside the library at commit 0e72e2e2c; taken from 322_findsubstringsboundedbyibzz.ring(opens in a new tab)

The extensions of this method

Each extension, and whether it exists for this method; an extension that exists combines with the others (FindSTCS).

Extension
Exists
What it adds · The names
Q
no
does what the method does, then returns the object, so the call can be chained
QQ
no
chains on the next, more specific type of object (the Q ladder)
QQQ
no
chains on the most specific type of object (the Q ladder)
QRT
no
returns the result as an object of the requested type
CS
yes
takes a case-sensitivity flag · BoundedByCS, SubStringsBoundedByCS, AnySubStringsBoundedByCS, BoundedByCSZZ and 1 more
ST
no
takes the position to start from (StartingAt)
IB
yes
takes bounds that are included (IncludingBounds) · BoundedByIB, SubStringsBoundedByIB, AnySubStringsBoundedByIB, BoundedByIBU and 4 more
XT
no
the extended form: more parameters than the base method
XTT
no
yet another extension: a further extended form, after XT
Z
yes
includes the position in what it returns · BoundedByZ, BoundedByUZ, BoundedByIBZ
ZZ
yes
returns positions as sections, [start, end] · BoundedByZZ, SubStringsBoundedByZZ, BoundedByUZZ, BoundedByCSZZ and 2 more
W
no
selects by a condition
WF
no
selects by a condition, with the expressive keywords (@NextItem, @PreviousItem...)
D
no
takes a direction, forward or backward (Directional)
F
no
takes a function (the condition or the update is given as a function); the forms document also uses F for the future form, which defers the action
Many
no
works on a collection of items instead of one (the plural form)
Except
no
takes exceptions, what to leave out (the exceptional form)
U
yes
returns the result without duplication · BoundedByU, SubStringsBoundedByU, BoundedByUZ, BoundedByIBU and 1 more

Every example is a test file of the library, run inside the library for this page; only those whose output kept every promise their file wrote are shown.

See also