Your formula is pretty close. If you’re looking to extract the “480” from the example, you would need to add an asterisk in your second group, like this:
IF(
AND(Date, Values),
REGEX_EXTRACT(
Values,
"(?:" & DATETIME_FORMAT(Date,"YYYY") & " )([^,]*)"
)
)
Here’s why that’s important. The original tokens you used—[^,]—are perfect for extracting a single character that’s not a comma, but that would only extract a single character. Adding the asterisk after the closing square brace effectively says to repeat the previous token as many times as possible; i.e. capture as many non-comma characters as you can. Once it hits the comma, it’ll stop.
The colon (double dot) character is used as part of some tokens in regular expressions—like the ?: prefix in a group to indicate that the group contents should be matched but not captured—but any reserved token can be used safely as long as it is escaped. To escape any token, add a backslash immediately before it. (In some contexts this would just be a single backslash, but because the backslash itself is also used to escape characters in strings, this means that you need two backslashes when building a regular expression string in Airtable: the first as the escape character in the string itself, and the second being the backslash that becomes an escape character in the regular expression.)
Yeah, it’s a little quirky, but it’s still my preferred way to do complex string parsing in Airtable.