ref: 17b6a133ca281986b0dfb9a1ced306e4fc99eb92
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 */ }