Regular expression set parser at compile and run time.
```rust use resetmacros::find;
find!(fn findidentifier "[[:alpha:]][[:word:]]*");
asserteq!(findidentifier("foo bar"), Some((0, "foo"))); ```
```rust use resetmacros::find;
find!(pub fn match_string
// Single quotes
r"'(\'|.)?'",
// Double quotes
r#""(\"|.)?""#,
// Multi-line strings
r"(?s)(\\
|.)*?`"
);
let (, string) = matchstring(r#""Hello, world!""#).unwrap();
assert_eq!(string, r#""Hello, world!""#); ```
```rust use resetmacros::find;
find!(pub(crate) fn next_token // 0: Punctuation "[[:punct:]]+", // 1: Words "[[:word:]]+", // 2: Whitespace "[[:space:]]+" );
let result = next_token("foo bar");
assert_eq!(result, Some((1, "foo")));
let (index, token) = result.unwrap();
match index { 0 => println!("Found punctuation: {token}"), 1 => println!("Found word: {token}"), 2 => println!("Found whitespace: {token}"), _ => unreachable!(), } ```