summaryrefslogtreecommitdiff
path: root/re.c
diff options
context:
space:
mode:
Diffstat (limited to 're.c')
-rw-r--r--re.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/re.c b/re.c
index 9b9cb87d02..fa00e8ceab 100644
--- a/re.c
+++ b/re.c
@@ -2569,11 +2569,13 @@ reg_match_pos(VALUE re, VALUE *strp, long pos)
* p rhs #=> nil
*
* This assignment is implemented in the Ruby parser.
- * So a regexp literal is required for the assignment.
+ * The parser detects 'regexp-literal =~ expression' for the assignment.
+ * The regexp must be a literal without interpolation and placed at left hand side.
+ *
* The assignment is not occur if the regexp is not a literal.
*
* re = /(?<lhs>\w+)\s*=\s*(?<rhs>\w+)/
- * re =~ " x = "
+ * re =~ " x = y "
* p lhs # undefined local variable
* p rhs # undefined local variable
*
@@ -2584,6 +2586,11 @@ reg_match_pos(VALUE re, VALUE *strp, long pos)
* /(?<lhs>\w+)\s*=\s*#{rhs_pat}/ =~ "x = y"
* p lhs # undefined local variable
*
+ * The assignment is not occur if the regexp is placed at right hand side.
+ *
+ * " x = y " =~ /(?<lhs>\w+)\s*=\s*(?<rhs>\w+)/
+ * p lhs, rhs # undefined local variable
+ *
*/
VALUE