Мне кажется, что у вас есть строка CSV (значения, разделенные запятыми), в которой вместо запятых используются точки с запятой. Я хотел бы посмотреть, существует ли существующий код, который вы могли бы использовать на своем языке программирования, который обрабатывает файлы CSV и может использовать точки с запятой в качестве разделителя.
Например, в модуле Perl Text :: CSV_XS вы можете вызвать модуль ->sep_set
для определения используемых разделителей.
Работа с этими разделителями и цитирование - это распространенная проблема, которая хорошо решена, а также таит в себе странные угловые случаи. Если вы можете заставить существующий инструмент сделать это за вас, вместо того, чтобы пытаться придумать регулярное выражение, это, вероятно, будет самым безопасным.