Nothing gets exchanged for "CPM", no error pops up; this means that r doesnt think the regex expression matches any of the vector entries, even though it should.... what am I missing?
You wrote a regex pattern, but you cannot check whether a string conform to this pattern or not using ==. That just checks for exact equality, and obviouly all leads to FALSE in your example.
You can do something like this, but I'll suggest to change the regex. It does not really match "X, a dot, and a number", it matches a string starting with a X, and any number of characters thereafter.