The match function fails to match my string
(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?