If it were me, I would create a simple class that holds a question and the possible answers. This way, you can parse your string into a class which can do other fancy things, like display itself correctly, and could contain a property that indicates the index of the correct answer (so you can compare the user's selection with the correct index).
For example, this class has a static Parse method that takes in your string and returns an instance of the class. It also overrides ToString so that it displays the Question and Answers in a nice way:
public class QuestionAndAnswers
{
public string Question { get; set; }
public List<string> Answers { get; set; }
public int IndexOfCorrectAnswer { get; set; }
public static QuestionAndAnswers Parse(string qaInput)
{
if (qaInput == null) throw new ArgumentNullException(nameof(qaInput));
var result = new QuestionAndAnswers();
var parts = Regex.Split(qaInput, @"\|?\s+(?=[A-Z]\.)");
result.Question = parts[0].TrimEnd('.');
result.Answers = parts.Skip(1).ToList();
return result;
}
public override string ToString()
{
return $"{Question}\n {string.Join("\n ", Answers)}";
}
}
Then it can be use something like this:
private static void Main()
{
var input = "What is Facebook?.| A. Website B. Internet C. Social Network D. Game";
var qa = QuestionAndAnswers.Parse(input);
Console.WriteLine(qa);
Console.WriteLine("\nDone!\nPress any key to exit...");
Console.ReadKey();
}
Output

^(.*)\|.*(A\..*)(B\..*)(C\..*)(D\..*)$|at the beginning of each section