Regex in a dynamic watchlist is not run against the packet. It's run against the string table, which includes all parsed data elements of type "string". A subtle difference, but important.
the regex search will return all matching strings (regardless of type), and place them in the list. The watchlist has a data type associated to it...in a sense you will be typecasting all the matching strings to the type you've defined for your Watchlist.