match macro difference

Gauche

OK

(use srfi-1)
(use util.match)
(match '(0 (1 2) (3 4 5))
  [(a (b c) (d e f))
   (list a b c d e f)])

(match '(0 (1 2) (3 4 5))
 [`(,a (,b ,c) (,d ,e ,f))
   (list a b c d e f)])

racket

Err

#lang scheme
 (require racket/match)
(match '(0 (1 2) (3 4 5))
  [(a (b c) (d e f))
   (list a b c d e f)])
;=> match: syntax error in pattern in: (a (b c) (d e f))

OK

#lang scheme
 (require racket/match)
(match '(0 (1 2) (3 4 5))
  [(list a (list b c) (list d e f))
   (list a b c d e f)])

(match '(0 (1 2) (3 4 5))
 [`(,a (,b ,c) (,d ,e ,f))
   (list a b c d e f)])

Err

(require (planet jim/sxml-match:1:1/sxml-match))
(sxml-match '(0 (1 2) (3 4 5))
         [(0 (,b c) (,d ,e ,f))
   (list 0 b c d e f)]) 
;;=> sxml-match: bad pattern syntax (not an element pattern) in: (0 ((unquote b) c) ((unquote d) (unquote e) (unquote f)))