There are three equivalent definitions of a recursively enumerable language:
All regular, context-free, context-sensitive and recursive languages are recursively enumerable.
Post's theorem shows that RE, together with its complement co-RE, correspond to the first level of the arithmetical hierarchy.
The set of halting Turing machines is recursively enumerable but not recursive. Indeed, one can run the Turing machine and accept if the machine halts, hence it is recursively enumerable. On the other hand, the problem is undecidable.
Some other recursively enumerable languages that are not recursive include:
Recursively enumerable languages (REL) are closed under the following operations. That is, if L and P are two recursively enumerable languages, then the following languages are recursively enumerable as well:
Recursively enumerable languages are not closed under set difference or complementation. The set difference L − P {\displaystyle L-P} is recursively enumerable if P {\displaystyle P} is recursive. If L {\displaystyle L} is recursively enumerable, then the complement of L {\displaystyle L} is recursively enumerable if and only if L {\displaystyle L} is also recursive.