Hello Programmers, In this post, you will learn how to solve HackerRank Forward References Solution. This problem is a part of the Regex HackerRank Series.
One more thing to add, don’t straight away look for the solutions, first try to solve the problems by yourself. If you find any difficulty after trying several times, then look for the solutions. We are going to solve the Regex HackerRank Solutions using CPP, JAVA, PYTHON, JavaScript & PHP Programming Languages.

HackerRank Forward References Solution
NOTE – Forward reference is supported by JGsoft, .NET, Java, Perl, PCRE, PHP, Delphi and Ruby regex flavors.
Forward reference creates a back reference to a regex that would appear later.
Forward references are only useful if they’re inside a repeated group.
Then there may arise a case in which the regex engine evaluates the backreference after the group has been matched already.

Task
You have a test string S.
Your task is to write a regex which will match S, with following condition(s):
- S consists of
tic
ortac
. tic
should not be immediate neighbour of itself.- The first
tic
must occur only whentac
has appeared at least twice before.
Valid S
tactactic
tactactictactic
Invalid S
tactactictactictictac
tactictac
Note
This is a regex only challenge. You are not required to write any code.
You only have to fill the regex pattern in the blank (_________
).
HackerRank Forward References Solution in Cpp
HackerRank Forward References Solution in Java
public class Solution { public static void main(String[] args) { Regex_Test tester = new Regex_Test(); tester.checker("^(tac|(tac){2,}(tic(tac)+)*(tic)?)$"); // Use \\ instead of using \ } }
HackerRank Forward References Solution in Python
Forward References Solution in JavaScript
Forward References Solution in PHP
$Regex_Pattern = '/^(\2tic(?!tic)|(tac))+$/'; //Do not delete '/'. Replace __________ with your regex.
Disclaimer: This problem (Forward References) is generated by HackerRank but the solution is provided by Chase2learn. This tutorial is only for Educational and Learning purposes.