Check an example that uses Regular Expressions:
string[] items = { "[Page#]", "[TimeDate]", "[Time]" };
string input = "Test string[Page#][TimeDate]that is difficult to [break] down.";
string j = string.Join( "|", items.Select( i => Regex.Escape( i ) ) );
string pattern = $@"(?:(?!{j}).)+|{j}";
string[] result = Regex.Matches( input, pattern ).Cast<Match>( ).Select( m => m.Value ).ToArray( );
(In .NET you can omit the .Cast<Match>( )).