**b**
2. **abc#**defgh#i | 1. a**bc**d a**bcccc**d a**b** (result for `bc*`)
2. **abc#defgh#**i (result for `a(.*)#`) |
+| `x*?` | `x*` captures greedily, i.e. as much as possible, while `x*?` captures non-greedily, i.e. as few as possible | 1. `bc*?`
2. `a.*?#` | 1. abcd abccccd ab
2. abc#defgh#i | 1. a**b**cd a**b**ccccd a**b**
2. **abc#**defgh#i | 1. a**bc**d a**bcccc**d a**b** (result for `bc*`)
2. **abc#defgh#**i (result for `a.*#`) |
| `x+?` | Same as above: `x+` (greedy), `x+?` (non-greedy) | 1. `bc+?`
2. `<.+?>` | 1. abcd abccccd ab
2. <span>Hallo</span> html. | 1. a**bc**d a**bc**cccd ab
2. **<span>**Hallo**</span>** html. | 1. a**bc**d a**bcccc**d ab (result for `bc+`)
2. **<span>Hallo</span>** html. (result for `<.+>`) |
Character Sets, Ranges, Subgroups and Lookarounds
diff --git a/13_Program_Flow_Logic.md b/13_Program_Flow_Logic.md
index 2ae207c..f0b0a06 100644
--- a/13_Program_Flow_Logic.md
+++ b/13_Program_Flow_Logic.md
@@ -520,7 +520,7 @@ Regarding the exiting of procedures, note the hint mentioned above. The use of `
```
- If the addition `INTO` is specified in the `CATCH` statement, a reference to the exception object is stored.
-- This is for, example relevant, to determine the exact exception. In the code snippet above, the exception class `CX_SY_ZERODIVIDE` is mentioned. Consider a calculator. It should not only be able to deal with error situations like zero division but also, for example, overflows in arithmetic operations. The predefined exception class `CX_SY_ARITHMETIC_OVERFLOW` is available. It is also derived from `CX_SY_ARITHMETIC_ERROR`. If you then specify the exception class `CX_SY_ARITHMETIC_ERROR` which is higher up in the inheritance hierarchy and can handle both error situations (`CX_SY_ARITHMETIC_OVERFLOW` and `CX_SY_ZERODIVIDE`), the concrete exception that was raised is unclear. Using the `INTO` clause and the stored exception object, it is possible to carry out certain tasks, for example, retrieving and displaying the exception text.
+- This is relevant to determine the exact exception, for example. In the code snippet above, the exception class `CX_SY_ZERODIVIDE` is mentioned. Consider a calculator. It should not only be able to deal with error situations like zero division but also, for example, overflows in arithmetic operations. The predefined exception class `CX_SY_ARITHMETIC_OVERFLOW` is available. It is also derived from `CX_SY_ARITHMETIC_ERROR`. If you then specify the exception class `CX_SY_ARITHMETIC_ERROR` which is higher up in the inheritance hierarchy and can handle both error situations (`CX_SY_ARITHMETIC_OVERFLOW` and `CX_SY_ZERODIVIDE`), the concrete exception that was raised is unclear. Using the `INTO` clause and the stored exception object, it is possible to carry out certain tasks, for example, retrieving and displaying the exception text.
```abap
DATA: exception TYPE REF TO cx_root. "Note the root class
diff --git a/src/zcl_demo_abap_sql_group_by.clas.abap b/src/zcl_demo_abap_sql_group_by.clas.abap
index 67b5680..295ef64 100644
--- a/src/zcl_demo_abap_sql_group_by.clas.abap
+++ b/src/zcl_demo_abap_sql_group_by.clas.abap
@@ -34,7 +34,7 @@
*
***********************************************************************
"! ABAP cheat sheet: ABAP SQL - Grouping Internal Tables
-"! Example to demonstrate working with structures.
Choose F9 in ADT to run the class.
+"! Example to demonstrate grouping internal tables.
Choose F9 in ADT to run the class.
CLASS zcl_demo_abap_sql_group_by DEFINITION
PUBLIC
FINAL