Based off your sample text this pattern
(?<book>^[A-Za-z]+)+\s{2,}.+?(?<ChapterAndVerseAndText>(?<ChapterAndVerse>\d+:\d+)(?<Text>.+?(?=(?:\d+:\d+)|\s{2}|\z)))+
With singleline option true, multiline option true
will capture the text and put the various parts in Named Groups. You'll have to look in the Groups.Captures Collection to pull out each individual verse.
As I said this works with your sample text. You may have to allow book names to have other characters. With your actual application I don't know if you'll have enough memory to load and process your input.
Raw Match Pattern:
(?<book>^[A-Za-z]+)+\s{2,}.+?(?<ChapterAndVerseAndText>(?<ChapterAndVerse>\d+:\d+)(?<Text>.+?(?=(?:\d+:\d+)|\s{2}|\z)))+
$matches Array:
(
[0] => Array
(
[0] => Genesis
The Creation of the World
1:1 In the beginning God created the heavens and the earth.
[1] => Exodus
1:1 These are the names of the sons of Israel who entered Egypt – each man with his household entered with Jacob: 1:2 Reuben, Simeon, Levi, and Judah, 1:3 Issachar, Zebulun, and Benjamin,
)
[book] => Array
(
[0] => Genesis
[1] => Exodus
)
[1] => Array
(
[0] => Genesis
[1] => Exodus
)
[ChapterAndVerseAndText] => Array
(
[0] => 1:1 In the beginning God created the heavens and the earth.
[1] => 1:3 Issachar, Zebulun, and Benjamin,
)
[2] => Array
(
[0] => 1:1 In the beginning God created the heavens and the earth.
[1] => 1:3 Issachar, Zebulun, and Benjamin,
)
[ChapterAndVerse] => Array
(
[0] => 1:1
[1] => 1:3
)
[3] => Array
(
[0] => 1:1
[1] => 1:3
)
[Text] => Array
(
[0] => In the beginning God created the heavens and the earth.
[1] => Issachar, Zebulun, and Benjamin,
)
[4] => Array
(
[0] => In the beginning God created the heavens and the earth.
[1] => Issachar, Zebulun, and Benjamin,
)
)
Michael
"In theory, theory and practice are the same. In practice, they are not."
Albert Einstein