You indicated in the comments that you want to use the command with latex-mode and that your MATCHER should also match more general arguments of LaTeX macros. The Elisp Manual describes that you can also use functions as matchers. That function can use scan-sexps for parsing the macro argument. The following Elisp code defines a new function propertize-command-scanner as matcher and re-defines the keywords list for font-lock-add-keywords to use propertize-command-scanner. Also note the comments given in the source code.
(defun propertize-command-scanner (bound) "Search for LaTeX macro \\command{...}. Start at point and do not search beyond BOUND. Set match data such that the embraced macro argument is the first group." (when (let (found) (while (and (search-forward "\\command" bound t) ;; avoid matches in strings and comments (null (setq found (null (nth 8 (syntax-ppss (point)))))))) found) (let* ((b (match-beginning 0)) (comment-forward most-positive-fixnum) ;; also skips whitespace (b1 (point)) (parse-sexp-ignore-comments t) (e1 (scan-sexps b1 1))) (set-match-data (list b e1 b1 e1 (current-buffer))) (goto-char e1)))) (setq propertize-command-arg-keywords '((propertize-command-scanner 1 'propertize-command-arg-face t))) ;; OVERRIDE must be non-nil since fontification of $...$ is syntax based ;; and syntax based fontification comes first. I only outline a strategy for the case that font-lock is not active: Define your own special face as it is done above for the font-lock case. You can register a fontification function via jit-lock-register. That function gets the boundaries of the region to be fontified and should set the face property of the text-stretches that match your keyword.