Чтобы решить эту проблему с помощью регулярного выражения, вы можете использовать прогнозные (как положительные, так и отрицательные) и ссылки, например:
(zyx:~) % echo '36,189,47,183,65,50;65,50,189,47' | grep -oP '((?>(?<![^,;])[^,;]+))(?=.*;)(?!.*;(|.*,)\1(?=,|$))'
36
183
Другой вариант (работает в PCRE, но не в Perl):
(zyx:~) % echo '36,189,47,183,65,50' | grep -oP '((?!(?<=,|^)65|50|189|47(?=,|$))(?<=,|^)[^,]+(?=,|$))'
36
183
Понятия не имею, работает ли какое-либо из этих действий в asp.