m4: Substr
11.4 Extracting substrings
==========================
Substrings are extracted with 'substr':
-- Builtin: substr (STRING, FROM, [LENGTH])
Expands to the substring of STRING, which starts at index FROM, and
extends for LENGTH characters, or to the end of STRING, if LENGTH
is omitted. The starting index of a string is always 0. The
expansion is empty if there is an error parsing FROM or LENGTH, if
FROM is beyond the end of STRING, or if LENGTH is negative.
The macro 'substr' is recognized only with parameters.
substr(`gnus, gnats, and armadillos', `6')
=>gnats, and armadillos
substr(`gnus, gnats, and armadillos', `6', `5')
=>gnats
Omitting FROM evokes a warning, but still produces output.
substr(`abc')
error->m4:stdin:1: Warning: too few arguments to builtin `substr'
=>abc
substr(`abc',)
error->m4:stdin:2: empty string treated as 0 in builtin `substr'
=>abc