Sort the books
School is starting soon (if it hasn't already) and so it's time to get our textbooks in order. You need to sort your books in alphabetical order but that takes too long so you decide to write a program to do it.
_ | | _ |F| | | |o|_|P| |o|B|P| | |a|C| | |r|G| |_|_|_|
_ | |_ |F| | _|o|P| |B|o|P| |a| |C| |r| |G| |_|_|_|
The input will be a set of books which need to rearranged alphabetically. It will contain only:
A-Za-z. The titles of the books are read vertically, top-bottom.
You may choose to assume the input is padded with whitespace to fit a rectangle. If you choose to have your input padded with whitespace, please specify this in your answer.
The output will need to be the same set of books organized in alphabetical order. The height of the books must stay the same and the title must have the same spacing from the top when re-arranged.
Books should be sorted alphabetically. Capital letters should be ordered before lowercase letters. Spaces should be ignored except when in the middle of a title. The order is:
Book Title Examples
_ | | | | |F| |o| |o| | | | | |B| |a| |r| | | | | |_|
This books title should be:
Trailing whitespace is allowed
This is code-golf so shortest code in bytes wins.
The shortest answer in bytes gets the green checkmark, one-week from the posting of this question (Aug. 11, 2015).