strcasecmp($input, $pattern) === 0, StringMatchMode::Contains => stripos($input, $pattern) !== false, StringMatchMode::StartsWith => strncasecmp($input, $pattern, strlen($pattern)) === 0, StringMatchMode::EndsWith => str_ends_with(strtolower($input), strtolower($pattern)), StringMatchMode::Regex => preg_match($pattern, $input) === 1, }; } }