|XP is just a number|
"I have so far been able to get the above output ..."
Please show the code you used to achieve this.
"... but cant seem to get upto the last portion of the line."
The results you've produced seem to indicate you have read to the end of each line. Please clarify.
Line 6 has no terminal hyphen in the input but it does have one in the output. Is this a typo? If not, perhaps this is related to whatever problem you're experiencing.
Your output seems to be in line with what you describe you're trying to do. It's not the easiest data to check visually; perhaps I'm missing something. Please provide expected output and show how this differs from what you're currently getting.
"The last line shows that there are 2 substrings b_1_1_7- and f_3_8_7- which are contained in the string on the right hand side."
Thanks to ++BrowserUk's output below, I note that this statement is incorrect. On the left, you have f_3_8_7_8- which doesn't match f_3_8_7- on the right.
That may be enough for you to solve the problem yourself. If not, you'll still need to post your code so that we can help you to fix it.