Extraction of strings from a file, after pattern matching

I need to extract strings from a file.

The file contains data like:

Plan ABCD
IN-+-172BB---118C2C---GGN_342-+-MM77_23--+-LAS24_3|GGK_774
| | \-LAS24_2|GGN_774
| +-AA_800_1-+-BAS_000|GGK_362
| | \-BAS_001|GGK_360
| \-DD_000T1---DAM_001|STEEL_0

Plan SHELL_1
IN-+-CRCBB---118C2D---FRB_342-+-SS77_23--+-LAS20_1|GGK_734
| +-AB_800_1-+-BAS_001|GGK_332
| | \-BAS_003|GGK_700

Where it shows a sort of chart, where I need a list of all the unique strings:

  1. All the strings starting with Plan (e.g. ABCD, SHELL_1)
  2. All the strings within - and - (e.g. 118C2C, AB_800_1, FRB_342, 172BB etc.).
  3. All the strings with single - and containing | in between separately (e.g. LAS20_1|GGk_734, BAS_001|GGK_332, BAS_003|GGK_700, LAS24_3|GGK_774 etc.).

Its a long file, can someone help me how to extract these strings.

I tried 2 approaches, first to read the file line by line, and using awk to print the arguments till NF is reached , but I got error that can not open file.
Second, I converted the file in a simple delimited file, through sed, but still unable to extract these strings out.

Could you give some example output for your example input?

Output for the given portion of the file i.e.

Input File:

Plan ABCD
IN-+-172BB---118C2C---GGN_342-+-MM77_23--+-LAS24_3|GGK_774
| | \-LAS24_2|GGN_774
| +-AA_800_1-+-BAS_000|GGK_362
| | \-BAS_001|GGK_360
| \-DD_000T1---DAM_001|STEEL_0

Plan SHELL_1
IN-+-CRCBB---118C2D---FRB_342-+-SS77_23--+-LAS20_1|GGK_734
| +-AB_800_1-+-BAS_001|GGK_332
| | \-BAS_003|GGK_700

Output will consists of 3 files, like below

File_1 with below data

Plan ABCD,
Plan SHELL_1

File_2 with below data

172BB
118C2C
GGN_342
MM77_23
AA_800_1
DD_000T1
CRCBB
118C2D
FRB_342
SS77_23
AB_800_1

File_3 with below data

LAS24_3|GGK_774
LAS24_2|GGN_774
BAS_000|GGK_362
BAS_001|GGK_360
DAM_001|STEEL_0
LAS20_1|GGK_734
BAS_001|GGK_332
BAS_003|GGK_700

You could do something like:

awk '/^Plan/ {print $2}' infile > File1
 
awk -F'-' '$0 !~ /^PLAN/ {for (i=1;i<=NF;i++) {if (($i != "") && ($i != "+") && (match($i,"[|]") == 0)) { print $i }}}' infile > File2
 
awk -F'-' '$0 !~ /^PLAN/ {for (i=1;i<=NF;i++) {if (($i != "") && ($i != "+") && (match($i,"[|]") > 0)) { print $i }}}' infile > File3