Maximal pair

In computer science, a maximal pair within a string is a pair of matching substrings that are maximal, where "maximal" means that it is not possible to make a longer matching pair by extending the range of both substrings to the left or right.

Example
For example, in this table, the substrings at indices 2 to 4 (in red) and indices 6 to 8 (in blue) are a maximal pair, because they contain identical characters, and they have different characters to the left ( at index 1 and   at index 5) and different characters to the right (  at index 5 and   at index 9). Similarly, the substrings at indices 6 to 8 (in blue) and indices 10 to 12 (in green) are a maximal pair.

However, the substrings at indices 2 to 4 (in red) and indices 10 to 12 (in green) are not a maximal pair, as the character  follows both substrings, and so they can be extended to the right to make a longer pair.

Formal definition
Formally, a maximal pair of substrings with starting positions $$p_1$$ and $$p_2$$ respectively, and both of length $$l$$, is specified by a triple $$(p_1, p_2, l)$$, such that, given a string $$S$$ of length $$n$$, $$S[p_1..p_1+l-1]=S[p_2..p_2+l-1]$$ (meaning that the substrings have identical contents), but $$S[p_1-1] \neq S[p_2-1]$$ (they have different characters to their left) and $$S[p_1+l] \neq S[p_2+l]$$ (they also have different characters to their right; together, these two inequalities are the condition for being maximal). Thus, in the example above, the maximal pairs are $$(2,6,3)$$ (the red and blue substrings) and $$(6,10,3)$$ (the green and blue substrings), and $$(2,10,3)$$ is not a maximal pair.

Related concepts and time complexity
A maximal repeat is the string represented by a maximal pair. A supermaximal repeat is a maximal repeat never occurring as a proper substring of another maximal repeat. In the above example,  and   are both maximal repeats, but only   is a supermaximal repeat.

Maximal pairs, maximal repeats and supermaximal repeats can each be found in $$\Theta(n+z)$$ time using a suffix tree, if there are $$z$$ such structures.