In regular expressions the boundaries ``\^`` and ``\A`` can only match at the beginning of the input (or, in case of ``\^`` in combination with the ``MULTILINE`` flag, the beginning of the line) and ``$``, ``\Z`` and ``\z`` only at the end.
These patterns can be misused, by accidentally switching ``\^`` and ``$`` for example, to create a pattern that can never match.
== Noncompliant Code Example
----
// This can never match because $ and ^ have been switched around
Pattern.compile("$[a-z]*^"); // Noncompliant
== Compliant Solution
Pattern.compile("^[a-z]*$");