pattern matching  assignments