These functions differ in how they are vectorised. ore_subst
vectorises over matches, and returns a vector of the same length as the
text argument. If multiple replacements are given then they are
applied to matches in turn. ore_repl vectorises over replacements,
replicating the elements of text as needed, and (in general)
returns a list the same length as text, whose elements are character
vectors each of the same length as replacement (or its return value,
if a function). Each string combines the first replacement for each match,
the second, and so on.
If replacement is a character vector, its component strings may
include back-references to captured substrings. "\\0" corresponds
to the whole matching substring, "\\1" is the first captured
group, and so on. Named groups may be referenced as "\\k<name>".
If replacement is a function, then it will be passed as its first
argument an object of class "orearg". This is a character vector
containing as its elements the matched substrings, and with an attribute
containing the matches for parenthesised subgroups, if there are any. A
groups method is available for this class, so the groups
attribute can be easily obtained that way. The substitution function will be
called once per element of text by ore_subst, and once per
match by ore_repl.