[[tests]]
name = "basic10"
regexes = ["a", "a"]
input = "a"
matches = [
  { id = 0, offsets = [0, 1] },
  { id = 1, offsets = [0, 1] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "basic10-leftmost-first"
regexes = ["a", "a"]
input = "a"
matches = [
  { id = 0, offsets = [0, 1] },
]
match_kind = "leftmost-first"
search_kind = "leftmost"

[[tests]]
name = "basic20"
regexes = ["a", "a"]
input = "ba"
matches = [
  { id = 0, offsets = [1, 2] },
  { id = 1, offsets = [1, 2] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "basic30"
regexes = ["a", "b"]
input = "a"
matches = [
  { id = 0, offsets = [0, 1] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "basic40"
regexes = ["a", "b"]
input = "b"
matches = [
  { id = 1, offsets = [0, 1] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "basic50"
regexes = ["a|b", "b|a"]
input = "b"
matches = [
  { id = 0, offsets = [0, 1] },
  { id = 1, offsets = [0, 1] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "basic60"
regexes = ["foo", "oo"]
input = "foo"
matches = [
  { id = 0, offsets = [0, 3] },
  { id = 1, offsets = [1, 3] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "basic60-leftmost-first"
regexes = ["foo", "oo"]
input = "foo"
matches = [
  { id = 0, offsets = [0, 3] },
]
match_kind = "leftmost-first"
search_kind = "leftmost"

[[tests]]
name = "basic61"
regexes = ["oo", "foo"]
input = "foo"
matches = [
  { id = 1, offsets = [0, 3] },
  { id = 0, offsets = [1, 3] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "basic61-leftmost-first"
regexes = ["oo", "foo"]
input = "foo"
matches = [
  { id = 1, offsets = [0, 3] },
]
match_kind = "leftmost-first"
search_kind = "leftmost"

[[tests]]
name = "basic70"
regexes = ["abcd", "bcd", "cd", "d"]
input = "abcd"
matches = [
  { id = 0, offsets = [0, 4] },
  { id = 1, offsets = [1, 4] },
  { id = 2, offsets = [2, 4] },
  { id = 3, offsets = [3, 4] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "basic71"
regexes = ["bcd", "cd", "d", "abcd"]
input = "abcd"
matches = [
  { id = 3, offsets = [0, 4] },
]
match_kind = "leftmost-first"
search_kind = "leftmost"

[[tests]]
name = "basic80"
regexes = ["^foo", "bar$"]
input = "foo"
matches = [
  { id = 0, offsets = [0, 3] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "basic81"
regexes = ["^foo", "bar$"]
input = "foo bar"
matches = [
  { id = 0, offsets = [0, 3] },
  { id = 1, offsets = [4, 7] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "basic82"
regexes = ["^foo", "bar$"]
input = "bar"
matches = [
  { id = 1, offsets = [0, 3] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "basic90"
regexes = ["[a-z]+$", "foo"]
input = "01234 foo"
matches = [
  { id = 0, offsets = [6, 9] },
  { id = 1, offsets = [6, 9] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "basic91"
regexes = ["[a-z]+$", "foo"]
input = "foo 01234"
matches = [
  { id = 1, offsets = [0, 3] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "basic100"
regexes = [".*?", "a"]
input = "zzza"
matches = [
  { id = 0, offsets = [0, 0] },
  { id = 0, offsets = [0, 1] },
  { id = 0, offsets = [0, 2] },
  { id = 0, offsets = [0, 3] },
  { id = 0, offsets = [0, 4] },
  { id = 1, offsets = [3, 4] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "basic101"
regexes = [".*", "a"]
input = "zzza"
matches = [
  { id = 0, offsets = [0, 0] },
  { id = 0, offsets = [0, 1] },
  { id = 0, offsets = [0, 2] },
  { id = 0, offsets = [0, 3] },
  { id = 0, offsets = [0, 4] },
  { id = 1, offsets = [3, 4] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "basic102"
regexes = [".*", "a"]
input = "zzz"
matches = [
  { id = 0, offsets = [0, 0] },
  { id = 0, offsets = [0, 1] },
  { id = 0, offsets = [0, 2] },
  { id = 0, offsets = [0, 3] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "basic110"
regexes = ['\ba\b']
input = "hello a bye"
matches = [
  { id = 0, offsets = [6, 7] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "basic111"
regexes = ['\ba\b', '\be\b']
input = "hello a bye e"
matches = [
  { id = 0, offsets = [6, 7] },
  { id = 1, offsets = [12, 13] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "basic120"
regexes = ["a"]
input = "a"
matches = [
  { id = 0, offsets = [0, 1] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "basic121"
regexes = [".*a"]
input = "a"
matches = [
  { id = 0, offsets = [0, 1] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "basic122"
regexes = [".*a", "β"]
input = "β"
matches = [
  { id = 1, offsets = [0, 2] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "basic130"
regexes = ["ab", "b"]
input = "ba"
matches = [
  { id = 1, offsets = [0, 1] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "empty10"
regexes = ["", "a"]
input = "abc"
matches = [
  { id = 0, offsets = [0, 0] },
  { id = 1, offsets = [0, 1] },
  { id = 0, offsets = [1, 1] },
  { id = 0, offsets = [2, 2] },
  { id = 0, offsets = [3, 3] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "empty10-leftmost-first"
regexes = ["", "a"]
input = "abc"
matches = [
  { id = 0, offsets = [0, 0] },
  { id = 0, offsets = [1, 1] },
  { id = 0, offsets = [2, 2] },
  { id = 0, offsets = [3, 3] },
]
match_kind = "leftmost-first"
search_kind = "leftmost"

[[tests]]
name = "empty11"
regexes = ["a", ""]
input = "abc"
matches = [
  { id = 1, offsets = [0, 0] },
  { id = 0, offsets = [0, 1] },
  { id = 1, offsets = [1, 1] },
  { id = 1, offsets = [2, 2] },
  { id = 1, offsets = [3, 3] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "empty11-leftmost-first"
regexes = ["a", ""]
input = "abc"
matches = [
  { id = 0, offsets = [0, 1] },
  { id = 1, offsets = [2, 2] },
  { id = 1, offsets = [3, 3] },
]
match_kind = "leftmost-first"
search_kind = "leftmost"

[[tests]]
name = "empty20"
regexes = ["", "b"]
input = "abc"
matches = [
  { id = 0, offsets = [0, 0] },
  { id = 0, offsets = [1, 1] },
  { id = 1, offsets = [1, 2] },
  { id = 0, offsets = [2, 2] },
  { id = 0, offsets = [3, 3] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "empty20-leftmost-first"
regexes = ["", "b"]
input = "abc"
matches = [
  { id = 0, offsets = [0, 0] },
  { id = 0, offsets = [1, 1] },
  { id = 0, offsets = [2, 2] },
  { id = 0, offsets = [3, 3] },
]
match_kind = "leftmost-first"
search_kind = "leftmost"

[[tests]]
name = "empty21"
regexes = ["b", ""]
input = "abc"
matches = [
  { id = 1, offsets = [0, 0] },
  { id = 1, offsets = [1, 1] },
  { id = 0, offsets = [1, 2] },
  { id = 1, offsets = [2, 2] },
  { id = 1, offsets = [3, 3] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "empty21-leftmost-first"
regexes = ["b", ""]
input = "abc"
matches = [
  { id = 1, offsets = [0, 0] },
  { id = 0, offsets = [1, 2] },
  { id = 1, offsets = [3, 3] },
]
match_kind = "leftmost-first"
search_kind = "leftmost"

[[tests]]
name = "empty22"
regexes = ["(?:)", "b"]
input = "abc"
matches = [
  { id = 0, offsets = [0, 0] },
  { id = 0, offsets = [1, 1] },
  { id = 1, offsets = [1, 2] },
  { id = 0, offsets = [2, 2] },
  { id = 0, offsets = [3, 3] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "empty23"
regexes = ["b", "(?:)"]
input = "abc"
matches = [
  { id = 1, offsets = [0, 0] },
  { id = 1, offsets = [1, 1] },
  { id = 0, offsets = [1, 2] },
  { id = 1, offsets = [2, 2] },
  { id = 1, offsets = [3, 3] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "empty30"
regexes = ["", "z"]
input = "abc"
matches = [
  { id = 0, offsets = [0, 0] },
  { id = 0, offsets = [1, 1] },
  { id = 0, offsets = [2, 2] },
  { id = 0, offsets = [3, 3] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "empty30-leftmost-first"
regexes = ["", "z"]
input = "abc"
matches = [
  { id = 0, offsets = [0, 0] },
  { id = 0, offsets = [1, 1] },
  { id = 0, offsets = [2, 2] },
  { id = 0, offsets = [3, 3] },
]
match_kind = "leftmost-first"
search_kind = "leftmost"

[[tests]]
name = "empty31"
regexes = ["z", ""]
input = "abc"
matches = [
  { id = 1, offsets = [0, 0] },
  { id = 1, offsets = [1, 1] },
  { id = 1, offsets = [2, 2] },
  { id = 1, offsets = [3, 3] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "empty31-leftmost-first"
regexes = ["z", ""]
input = "abc"
matches = [
  { id = 1, offsets = [0, 0] },
  { id = 1, offsets = [1, 1] },
  { id = 1, offsets = [2, 2] },
  { id = 1, offsets = [3, 3] },
]
match_kind = "leftmost-first"
search_kind = "leftmost"

[[tests]]
name = "empty40"
regexes = ["c(?:)", "b"]
input = "abc"
matches = [
  { id = 1, offsets = [1, 2] },
  { id = 0, offsets = [2, 3] },
]
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "empty40-leftmost-first"
regexes = ["c(?:)", "b"]
input = "abc"
matches = [
  { id = 1, offsets = [1, 2] },
  { id = 0, offsets = [2, 3] },
]
match_kind = "leftmost-first"
search_kind = "leftmost"

[[tests]]
name = "nomatch10"
regexes = ["a", "a"]
input = "b"
matches = []
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "nomatch20"
regexes = ["^foo", "bar$"]
input = "bar foo"
matches = []
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "nomatch30"
regexes = []
input = "a"
matches = []
match_kind = "all"
search_kind = "overlapping"

[[tests]]
name = "nomatch40"
regexes = ["^rooted$", '\.log$']
input = "notrooted"
matches = []
match_kind = "all"
search_kind = "overlapping"
