The match function fails to match my string
20:12 20 May 2026
(define str "abc captain:10 others:30 first-officer:20 alt:40")
(match (string->list str)
;;method 1

  [(list _ ... #\i #\n #\: cap ... #\space _ ... #\e #\r #\: fst ... #\space _ ...)
;;method 2
 ;; [(list _ ... #\i #\n #\: cap ..2 #\space _ ... #\e #\r #\: fst ... #\space _ ...) 
   (list (list->string cap) (list->string fst))])

Running the above codes, I get
'("10 others:30" "20")

I want to get the number after the string captain and first-officer. Both method I tries fails.

Why and how to make it word correctly?

racket