I noticed that
IFS=;
read v1 v2 <<< "hey;hello"
stores the entire string "hey;hello" in $v1
while
IFS=";"
read v1 v2 <<< "hey;hello"
does the expected action, which is storing "hey" in $v1 and "hello" in $v2
why is that? from what I understand, there's no need to put quotes when assigning a string, as long as there's no whitespace involved