reverse_iterator_type rend(void) { return original_string().rend() - base_type::m_start; }
iterator_type end(void) { return original_string().begin() + base_type::m_end; }
reverse_iterator_type rbegin(void) { return original_string().rend() - base_type::m_end; }
iterator_type begin(void) { return original_string().begin() + base_type::m_start; }