Maybe this helps:
scala> val (x, y) = (1, 2)
x: Int = 1
y: Int = 2
scala> val (X, Y) = (1, 2)
<console>:7: error: not found: value X
val (X, Y) = (1, 2)
^
<console>:7: error: not found: value Y
val (X, Y) = (1, 2)
^
What happens is that unicode is treated like uppercase characters when it comes to pattern matching, which means that, since it "starts" with an "uppercase letter", it thinks you are comparing to a constant instead of assigning values.
Another example:
val © = 1
val ® = 3
(1, 2) match {
case (©, ®) => "Both match"
case (_, ®) => "Second matches"
case (©, _) => "First matches"
case _ => "None match"
}
results in
res0: java.lang.String = First matches