C#
string[] splitArray = Regex.Split(subjectString, "(<[^<>]*>)");

Regex regexObj = new Regex("(<[^<>]*>)");
string[] splitArray = regexObj.Split(subjectString);


VB.NET
Dim SplitArray = Regex.Split(SubjectString, "(<[^<>]*>)")

Dim RegexObj As New Regex("(<[^<>]*>)")
Dim SplitArray = RegexObj.Split(SubjectString)


Java
List<String> resultList = new ArrayList<String>();
Pattern regex = Pattern.compile("<[^<>]*>");
Matcher regexMatcher = regex.matcher(subjectString);
int lastIndex = 0;
while (regexMatcher.find()) {
    resultList.add(subjectString.substring(lastIndex,
                                           regexMatcher.start()));
    resultList.add(regexMatcher.group());
    lastIndex = regexMatcher.end();
}
resultList.add(subjectString.substring(lastIndex));


JavaScript
var list = [];
var regex = /<[^<>]*>/g;
var match = null;
var lastIndex = 0;
while (match = regex.exec(subject)) {
    // Eliminujemy ryzyko wejcia przegldarki (na przykad Firefoksa) w nieskoczon ptl.
    if (match.index == regex.lastIndex) regex.lastIndex++;
    // Dodajemy tekst sprzed dopasowania oraz tekst samego dopasowania.
    list.push(subject.substring(lastIndex, match.index), match[0]);
    lastIndex = match.index + match[0].length;
}
// Dodajemy reszt acucha zza ostatniego dopasowania.
list.push(subject.substr(lastIndex));


PHP
$result = preg_split('/(<[^<>]*>)/', $subject, -1,
                       PREG_SPLIT_DELIM_CAPTURE);


Perl
@result = split(m/(<[^<>]*>)/, $subject);


Python
result = re.split("(<[^<>]*>)", subject))

reobj = re.compile("(<[^<>]*>)")
result = reobj.split(subject)


Ruby
list = []
lastindex = 0;
subject.scan(/<[^<>]*>/) {|match|
    list << subject[lastindex..$~.begin(0)-1];
    list << $&
    lastindex = $~.end(0)
}
list << subject[lastindex..subject.length()]
