patterns are splited into precedence and except patterns