У Вас есть 2 основных подхода
1. через 2 выражения пользуясь операторами перечисленными здесь
https://dev.mysql.com/doc/refman/8.0/en/regexp.html
Возможно не всеми в любой комбинации, но существенно то, что один оператор должен найти часть последовательности символов, которые должны ответить, например
SELECT *
FROM `post`
WHERE
-- 1-е выражение
`description` LIKE 'itemid=34543%'
-- 2-е выражение
AND
`description` NOT RLIKE 'itemid=34543[0-9]+'
2. через 1 регулярное выражение, очень похожее на то, которое Вы предложили, но видимо с \ ( backslash ) символом проведенным дважды, на той же странице объясняется почему: "Because MySQL uses the C escape syntax in strings (for example, \n to represent the newline character), you must double any \ that you use in your expr and pat arguments."
Если по той или иной причине выражение артачится, наверное можно воспользоваться выражением на один символ длиннее, для выражения цифр [^0-9]
Ну и наверное надо воспользоваться плюсом, а не звездочкой справа [^0-9]+, иначе эта часть становится не обязательной, и запрос может выбрать, например, значение 'itemid=34543'
---
Всего хорошего!