I see here two questions with your order. Firstly, the bracket character is lexicographically smaller than alphanumeric characters, which is not consistent with what you want. Secondly, you have a case sensitivity problem with your book titles. This makes it sBoxlook more lexicographic than Web, although the old letter appears earlier in the alphabet from a case insensitive point of view.
- . , - , , . , , .
SELECT Book
FROM Library
ORDER BY CASE WHEN REGEXP_LIKE(SUBSTR(Book, 1, 1), '[^A-Za-z0-9]') THEN 0 ELSE 1 END,
LOWER(Book) DESC
, , , , .. ^[.*]:
ORDER BY CASE WHEN REGEXP_LIKE(Book, '^[[].*[]]') THEN 0 ELSE 1 END,
LOWER(Book) DESC