Yes. Instead of using a regular syntax transformer created with define-syntax, use define-match-expanderto create a macro that can work with match .
(require (for-syntax syntax/parse))
(define-match-expander positive
(syntax-parser
[(_ n)
#'(? positive? n)]))
(match 3
[(positive n) (~a n " is positive")])
; => "3 is positive"
define-match-expander : , match, , - , , , . "-" , , .
(require (for-syntax syntax/parse)
(prefix-in base: racket/base))
(define-match-expander syntax
(syntax-parser
[(_ x)
#'(? syntax? (app syntax->datum x))])
(make-rename-transformer #'base:syntax))
(match (syntax (1 2 3))
[(syntax n) (~a n " is a syntax list")])
, define-match-expander prop:match-expander. prop:procedure, , , , prop:rename-transformer, , .