Why not simply check that it's actually [space]-M[space or punctuator] ?
i.e. `isspace(m_pos[-1]) && (isspace(m_pos[2]) || ispunct(m_pos[2]))`