ref: fdf87b91c1bbd64be75b8438ad6eaf492325e5b4
dir: /lib/regex/test/boundaries.myr/
use std use "testmatch" const main = { /* expected matches */ testmatch("\\<([a-z]*)\\>", "abcdef", `std.Some [ "abcdef", ][:]) testmatch(".*(\\<.*\\>).*", "!m!", `std.Some [ /* single char word in midstring */ "m", ][:]) testmatch(".*(\\<.*\\>).*", "!m", `std.Some [ /* single char word at end of string */ "m", ][:]) testmatch(".*(\\<.*\\>).*", "m!", `std.Some [ /* single char word at start of string */ "m", ][:]) testmatch(".*(\\<.*\\>).*", "!@#!!matches!!%!", `std.Some [ /* word in midstring */ "matches", ][:]) testmatch(".*(\\<.*\\>).*", "matches!!%!", `std.Some [ /* word at start of string */ "matches", ][:]) testmatch(".*(\\<.*\\>).*", "!@#!!matches", `std.Some [ /* word at end of string */ "matches", ][:]) testmatch(".*(\\<.*\\>).*", "!@#!!matches!!%!foo", `std.Some [ /* matches last word in string */ "foo", ][:]) testmatch(".*(\\<.*\\>).*", "123", `std.Some [ /* numbers are also word bounds */ "123", ][:]) /* nonmatches */ testmatch("\\<([a-z]*)\\>foo", "abcdefoo", `std.None) /* word boundary needed in midstring */ }