Wrap string at certain delimiters
It looks like you have three distinct cases, two of which can be covered with one regex as @EmilyL pointed out already.

So unless I am missing something can't you just do the following?

private static String format(String unformattedStr) {    
    return unformattedStr.replaceAll("(;?\\s)(\\d+[).])", "$1\\\\n$2");
}