std::string like compile-time const char* string
I would only ever mark polymorphic classes final. For them, there's a potential benefit to balance out the unnaturalness of not being able to inherit.
You should really indent the contents of the class by one step. Though that could possibly be an artifact of only partially adapting to SE's markup.
Consider verifying that prefix and suffix have sensible values, at least in debug-mode (assert()).
The first ctor has sensible defaults for its last two parameters. Why not take advantage of that?
Is there a reason you only accept std::string, instead of generally std::basic_string&lt;char, std::char_traits&lt;char&gt;, AnyAllocator&gt;?
You could use !_size instead of _size == 0. Well, de gustibus.
Your comparison is curious, but at least consistent.
I would suggest conforming to C++17 std::string_view as closely as possible so you can later remove your custom class, and to ease the burden for users.