You can use Regex.Split with zero-width assertions. For example, the following will split on +-*/:
Regex.Split(str, @"(?=[-+*/])|(?<=[-+*/])");
Effectively this says, "split at this point if it is followed by, or preceded by, any of -+*/. The matched string itself will be zero-length, so you won't lose any part of the input string.