Matcher: allow symbols to be customised and refactor find_symbol_pos to use the character type instead of string